Tician Geschrieben 16. Oktober 2017 Teilen Geschrieben 16. Oktober 2017 Hallöööchen mit 3 öchen, ich habe mich gefragt ob es möglich ist ein C# Programm direkt auf einer Webseite laufen zu lassen (ohne Download). Dabei bin ich erst auf die Funktion zur Veröffentlichung aufmerksam gemacht worden - aber nach ein wenig Recherche klingt es nicht nach dem was ich suche. Das nächste was ich gefunden habe ist ASP.NET, da hätte ich gerne rein geschnuppert, aber ich habe 'nur' VS 2015 Express und finde dort keine Möglichkeit bei der Projekt-Erstellung ASP.NET auszuwählen. Ich bin da also gerade etwas verloren weil ich nicht weiß wonach ich überhaupt genau suche und was ich dafür brauche. Funktioniert das überhaupt? Habt ihr irgendein gutes Schritt für Schritt Tutorial? Grüße Tician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 16. Oktober 2017 Teilen Geschrieben 16. Oktober 2017 Hol dir mal die Visual Studio Community Editon 2017, damit sollte auch ASP.NET möglich sein. Damit kannst du dir dann Webanwendungen schreiben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 16. Oktober 2017 Teilen Geschrieben 16. Oktober 2017 (bearbeitet) vor 40 Minuten schrieb Tician: VS 2015 Express Das gibt's noch? Ich dachte "Express" wäre mit 2013 eingestellt worden und das heißt jetzt "Community". Mit der Community-Edition von VS2015 kannst du aber definitiv auch ASP.NET machen - möglicherweise musst du nur die Vorlagen nachinstallieren. Wenn du das Setup nochmal ausführst, müsstest du auswählen können, welche Bestandteile installiert werden - da sollte auch ASP.NET dabei sein. edit: Huh, gerade nochmal nachgeguckt und offenbar gibt's die Express-Versionen tatsächlich noch parallel zur Community-Version. Bei der Community-Version musst du ggf. aufpassen, ob du die im kommerziellen Bereich einsetzen darfst. Express for Web gibt's bspw. hier: MSDN Download. Die Express-Versionen gibt's einmal für Desktop und einmal für Web und können dann auch nur die entsprechenden Projekte. Bearbeitet 16. Oktober 2017 von arlegermi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tician Geschrieben 16. Oktober 2017 Autor Teilen Geschrieben 16. Oktober 2017 (bearbeitet) Habe VS 2015 gerade deinstalliert und hau mit die Community-Version 2017 drauf Vermutlich wird das schon alle Probleme lösen^^ Bearbeitet 16. Oktober 2017 von Tician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 16. Oktober 2017 Teilen Geschrieben 16. Oktober 2017 2015 war die letzte Express-Version. Es gab da mehrere Express-Editionen für unterschiedliche Aufgaben (Desktop, Web, UWP, Quellcodeverwaltung). Die Express-Version wurde aber nun komplett eingestellt, weil sie aufgrund der Community-Version überflüssig wurde. Du entwickelst aber mit ASP.NET keine Client-Anwendung, sondern eine Client-Server-Anwendung. Der Code wird also auf dem Server ausgeführt und der Client stellt das Ergebnis nur grafisch dar. Mit dem neueren ASP.NET MVC benutzt stark das MVC-Pattern (Model-View-Controller) und zwingt den Entwickler auch dazu, dies einzuhalten. Da brauchst also schon ein bisschen technisches Verständnis, wie dieses Pattern funktioniert. Du hast dort auch kein GUI-Designer wie in WinForms- oder WPF-Anwendungen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tician Geschrieben 16. Oktober 2017 Autor Teilen Geschrieben 16. Oktober 2017 Das hört sich nach arbeit an, aber "Server führt aus und Client stellt dar" ist genau das gemeint was ich brauche. Ich werden mich da durch wühlen und mir mal ein paar Tutorials anschauen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tician Geschrieben 17. Oktober 2017 Autor Teilen Geschrieben 17. Oktober 2017 Yay, ich hab meine Datenbank-Tabelle (MySQL) auf der Webseite ausgegeben *freu* ASP.NET ist toll, ich wusste vorher nicht das es sowas gibt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tician Geschrieben 16. Januar 2018 Autor Teilen Geschrieben 16. Januar 2018 Ich... bräuchte Hilfe Ich wollte mich mal durch ein Tutorial hangeln, aber (wie immer bei mir) führen slebst Schritt für Schritt-Anleitungen zu Fehlern. https://docs.microsoft.com/de-de/aspnet/core/tutorials/first-mvc-app/adding-controller Ich habe meinen ersten Controller hinzugefügt, den Code kopiert und jetzt sieht es so aus: namespace NetCoreTest1.Controllers { public class HelloWorldController1 : Controller { // // GET: /HelloWorld/ public string Index() { return "This is my default action..."; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..."; } } } Sonst keine Veränderungen gemacht. Laut Anleitung sollte ich also ohne Debugging starten, dann kommt die Standard-Webseite, aber wenn ich "/HelloWorld" anhänge kriege ich nur eine leere Seite. Ich verstehe es vorne und hinten nicht... woher soll mein Programm auch wissen das ich genau diesen Index mit "HelloWorld" aufrufen möchte, ich habe 'HelloWorld' ja nie irgendwo definiert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mttkrb Geschrieben 16. Januar 2018 Teilen Geschrieben 16. Januar 2018 Hi, nimm an deinen HelloWordController1 mal die 1 weg. Dann sollte das Get mit /HelloWorld/ und /HelloWorld/Welcome auch klappen. Ich nutze zum einfachen Testen der Endpunkte immer gerne den Fiddler. Damit lassen sich schnell Request zusammenbauen, wiederholen, etc. thereisnospace reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 16. Januar 2018 Teilen Geschrieben 16. Januar 2018 vor 2 Stunden schrieb Tician: woher soll mein Programm auch wissen das ich genau diesen Index mit "HelloWorld" aufrufen möchte ASP.NET ist start konventionsorientiert. Das heißt, dass standardmäßig jeder Controller über seinen Namen erreichbar ist (ohne das "Controller"). In deinem Fall klappt das nicht, weil dein Controller nicht mit "Controller" endet, sondern mit "Controller1" - und das widerspricht der Konvention. Man kann das ganze auch selber steuern, aber das ist für den Anfang vielleicht zuviel. Sprich: Klasse heißt "HelloWorldController", daraus folgt die URL localhost/HelloWorld Und wenn du eine Methode Index() hast, dann wird diese als Standardantwort für deinen Controller genutzt. Das ganze macht einen schnellen Start sehr einfach, bietet aber auch (über die Routing-Konfiguration) genug Flexibilität für komplexere Szenarien. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tician Geschrieben 18. Januar 2018 Autor Teilen Geschrieben 18. Januar 2018 (bearbeitet) @arlegermi Vielen Dank für deine Antwort, habe ich soweit verstanden Viel blabla, bevor sich das jemand antut: Es funktioniert gerade. Auf Anraten starte ich jetzt doch erstmal mit "normalem" ASP.NET über Webforms durch und finde das um einiges leichter. Jetzt habe ich eine Situation bei der ich vermutlich einfach falsch google aber gerade nicht weiß wonach ich suchen soll um ein für mich relevantes Ergebnis zu bekommen. Ich habe auf meiner Webseite eine Tabelle (dataGridView), die durch DataBind() quasi eine MySQL-Tabelle ausgibt. Dieser Tabelle habe ich eine Spalte hinzugefügt mit klickbaren labels (linkslabels oder wie die heißen). Soweit werden sie auch angezeigt, aber geben noch einen Error zurück "dataGridView1 löste das Ereignis RowEditing aus, das nicht behandelt wurde". Es gibt also schon ein Ereignis das ich mir beim erstellen der Spalte zusammen geklickt habe - vermutlich aber das falsche, da Row Editing nicht das war was ich wollte. Mein Gedanke war nun, dass wenn man auf einen dieser links klickt der Inhalt der Spalte "name" in der Zeile in der der Link geklickt wurde ausgelesen wird, man auf eine weitere Seite geleitet wird und ich diese Variable - also den Namen - auf der nächstes Seite weiter benutzen kann. Ich bräuchte in etwa ein Event das linkLabel.Click() heißt oder so, das dann für alle dieser labels gilt und es mir ermöglicht zu wissen in welcher Zeile es geklickt wurde. Hier wäre ich für jegliche Hilfe dankbar. *.aspx <form id="form1" runat="server"> <div> <asp:GridView ID="dataGridView1" runat="server"> <Columns> <asp:ButtonField CommandName="Edit" HeaderText="Editieren" ShowHeader="True" Text="Edit" /> </Columns> </asp:GridView> <br /> Name: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> <p> <asp:Button ID="MaAdd" runat="server" OnClick="MaAdd_Click" Text="Add Mitarbeiter" /> </p> </form> *.aspx.cs protected void Page_Load(object sender, EventArgs e) { db = new Datenbank(); db.Connect(); MySqlDataAdapter da = db.Query("select * from mitarbeiter;"); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; dataGridView1.DataBind(); db.Disconnect(); } db ist das Objekt einer Klasse die ich mir erstellt habe um den ganzen Datenbank-Kram abzuarbeiten. Tante Edith: Jetzt habe ich mal ein Event geschrieben: void DataGridView1_RowCommand(Object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Select") { int index = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = dataGridView1.Rows[index]; TableCell tableName = selectedRow.Cells[2]; string name = tableName.Text; //Response.BufferOutput = true; Response.Redirect("~/Default.aspx", true); } } Allerdings kam ich da nie hin, nach langem Suchen hab ich dann die Hand vor die Stirn geklatscht und das Event auch als RowCommand in die aspx-Datei gehängt: <asp:GridView ID="dataGridView1" runat="server" OnRowCommand="DataGridView1_RowCommand"> <Columns> <asp:ButtonField CommandName="Select" HeaderText="Editieren" ShowHeader="True" Text="Edit" ItemStyle-HorizontalAlign="Right"/> </Columns> </asp:GridView> Hat leider nicht so funktioniert wie ich es mir erhofft hatte, meine Seite wird durch diesen kleinen Zusatz "OnRowCommand" gar nicht mehr angezeigt und liefert nur noch einen Fehler zurück: 'mitarbeiter_aspx' does not contain a definition for 'DataGridView1_RowCommand' and no extension method 'DataGridView1_RowCommand' accepting a first argument of type 'mitarbeiter_aspx' could be found (are you missing a using directive or an assembly reference?) Ich kenne die Fehlermeldung sonst nur wenn mit tatsächlich ein using directive fehlt, in diesem Fall... keine Ahnung in der cs-Datei ist sie ja da (System.Web.UI.WebControls) Edit 2: Funktioniert Bearbeitet 18. Januar 2018 von Tician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.