Laden...

Vorlesungsskript im Bereich .NET fehlerhaft?

Erstellt von Enddyn vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.806 Views
E
Enddyn Themenstarter:in
3 Beiträge seit 2012
vor 11 Jahren
Vorlesungsskript im Bereich .NET fehlerhaft?

Hallo!

Um nicht lange um den Brei herumzureden:
Ein prüfungsrelevanter Teil eines Vorlesungsskriptes befasst sich auf lediglich 3 Seiten kurz mit .NET. Darin stehen aber meiner Meinung nach doch einige komische Dinge, bei denen ich mir unsicher bin, ob man die so stehen lassen kann. Bevor ich jetzt zum Professor renne, wollte ich vorsichtshalber mal eure Meinung hören.

Der Inhalt ist nur sinngemäß (da nicht meiner, keine Lust auf Ärger) wiedergegeben, die Kernaussagen stimmen aber.

Die CLR (Common Language Runtime) sei die Laufzeitgebung für .NET-Anwendungen

Im Unterschied zu Java können unterschiedliche Programmiersprachen zum Einsatz kommen

Der zweite Punkt stört mich bereits, denkt man doch an Scala, Groovy, Clojure und wie sie alle heißen. Aber lassen wir es dabei, vermutlich waren "offizielle" Sprachen gemeint, passt schon. Gleich wird es interessanter.

Anwendungstypen1.Managed Anwendungen
Geschrieben in CLR-kompatibler Programmiersprache wie C#, Visual Basic, C++.
Übersetzung in Datei als Common Intermediate Language (CIL).
CLR interpretiert im Gegensatz zur JVM nicht, sondern übersetzt in Binärcode (just-in-time).

1.Non-Managed Anwendungen

Anwendungen in nicht CLR-kompatibler Programmiersprache.
Ausführung außerhalb der CLR.
Zwitterstellung: Web-Applikationen auf ASP.NET-Basis.
ASP.NET-Laufzeitgebung ähnlich zu CLR (Beispiel: Web-Browser)

Was mich stört:

Gemeint waren sicherlich C#, VB.NET und C++/CLI... - Visual Basic und C++ sind wohl kaum CLR-kompatibel. Aber gut, meckern auf hohem Niveau, weiter geht's.

Interpretiert die JVM wirklich noch? Wenn ich nicht falsch liege, dann ist man mittlerweile auch hier längst beim just-in-time Kompilieren angekommen. Oder von mir aus eine Mischform, aber wohl definitiv nicht so, wie es durch den Text oben rüberkommt.

Warum sollten ASP.NET Anwendungen eine Zwitterstellung haben? Ich kann keinerlei Informationen dazu finden, dass die Laufzeitgebung auf Serverseite etwas ähnliches wäre wie die CLR - meiner Meinung nach ist das exakt die CLR, und folglich sind ASP.NET Anwendungen auch managed.
Was ich mir vorstellen könnte, was aber sehr unglücklich formuliert wäre: In Klammer steht, wie oben geschrieben, tatsächlich Web-Browser als Beispiel. Eventuell war das so gemeint, dass die "View" der Anwendung im Browser dargestellt wird und es deshalb nicht mehr rein managed ist. Aber naja, das wäre mehr als unglücklich.

Nicht sehr viel klarer werden die Aussagen über managed/non-managed durch dieses Schaubild, welches darunter ersichtlich ist:

(siehe Anhang). Man beachte: der Titel lautet ".NET Framework Prinzip".

Sieht auf dem ersten Blick schlüssig aus, aber warum die Trennung von CLR und ASP.NET Runtime in managed- bzw. non-managed?

Zum Schluss folgende Frage aus einer Probeklausur der gleichen Vorlesung:

Wodurch unterscheiden sich Managed und Non-Managed Applications in .NET?

Also spätestens hier ist das dann meiner Meinung nach falsch oder zu ungenau.
.NET bedeutet CLR bedeutet immer managed (Speicherverwaltuung, Typprüfung, GC etc...) Pinvoke kenne ich, war aber nie ein Thema, wird nicht gemeint sein. Mich beschleicht das Gefühl, der Prof. würde meinen, dass man .NET-Anwendungen ganz generell in managed und non-managed unterteilt und man da eine Auswahl hätte.

Wäre sehr nett, wenn ihr den ein oder anderen Punkt kommentieren könntet.

Danke!

Warum ich den Prof. nicht drauf anspreche? Der hat leider die Eigenheit, dass er 14 Tage vor der Klausur keine Fragen mehr per Mail beantwortet, aus "Fairnessgründen". Ich kann jetzt nur Argumente sammeln, um HINTERHER bei der Klausureinsicht was in der Hand zu haben, falls die Sachen anders da stehen, als er sie hören möchte

2.298 Beiträge seit 2010
vor 11 Jahren

Hallo,

der erste Punkt:

Im Unterschied zu Java können unterschiedliche Programmiersprachen zum Einsatz kommen

ist vollständig richtig. - Hier wird ja nicht behauptet es würden alle Programmiersprachen funktionieren, sondern dort steht wörtlich "können unterschiedliche Programmiersprachen zum Einsatz kommen".

Beim 2. Punkt wird er wohl entweder geträumt haben, oder er weis es wirklich nicht besser. Natürlich hast du recht und es kommen Visual Basic .NET sowie C++/Cli zum Einsatz.

Auch hast du natürlich Recht, das ASP**.NET** Websites in der CLR laufen. - Hier scheint er wiederum geträumt zu haben oder weis es wirklich nicht besser. - Ich denke er ging hier davon aus, das ASP.NET und ASP die selbe Grundlage haben.

Zu deiner Frage aus der Probeklausur:

Wodurch unterscheiden sich Managed und Non-Managed Applications in .NET?

An deiner Stelle würde ich hier die letzten 2 Worte aus der Frage streichen, machs am besten auch gleich aufm Klausur-Zettel. Anschließend kannst du auf die Unterschiede zwischen Managed und Unmanaged Anwendungen eingehen. - Wie du richtig gesagt hast gibt es keine Unmanaged .NET Anwendungen, maximal .NET Anwendungen die unmanaged Code verwenden.

Warum ich den Prof. nicht drauf anspreche? Der hat leider die Eigenheit, dass er 14 Tage vor der Klausur keine Fragen mehr per Mail beantwortet, aus "Fairnessgründen". Ich kann jetzt nur Argumente sammeln, um HINTERHER bei der Klausureinsicht was in der Hand zu haben, falls die Sachen anders da stehen, als er sie hören möchte

Sorry, das Argument zieht jetzt aber gar nicht?! Er sagte er beantwortet keine Fragen per Mail, er sagte jedoch nicht, das er sie nicht zumindest liest.

Alles in allem jedoch, musst du davon ausgehen, das der Prof. sowieso nur die Grundlagen lehren soll. - Für alles weitere bist du als Student zuständig.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

C
1.214 Beiträge seit 2006
vor 11 Jahren

der erste Punkt:

Im Unterschied zu Java können unterschiedliche Programmiersprachen zum Einsatz kommen

ist vollständig richtig. - Hier wird ja nicht behauptet es würden alle Programmiersprachen funktionieren, sondern dort steht wörtlich "können unterschiedliche Programmiersprachen zum Einsatz kommen".

Ich bin mir nicht sicher, wer hier was gemeint hat, muss aber anmerken, dass auf der "Java Plattform" auch viele unterschiedliche Sprachen verwendet werden können, nicht nur Java. Da seh ich keinen großen Unterschied zur CLR.

6.862 Beiträge seit 2003
vor 11 Jahren

Hallo,

Ich will nicht auf die technischen Dinge eingehen, die in der Tat nicht alle korrekt sind, aber dein Grundproblem ist meiner Meinung nach ein anderes.

Wenn der Dozent Fehler macht, sei es in der Vorlesung oder im Skript, muss das sofort korrigiert werden bzw. von euch angemerkt werden um ggfls. darüber diskutieren zu können. Die Sache ist einfach die, dass in den Prüfungen abgefragt wird, was ihr durch Vorlesung und Skript gelernt habt. Wenn der Professor durch euch nicht korrgiert wurde vor der Prüfung - dann sind die zu erwartenden Antworten auf die Fragen die, die man im Skript findet. Selbst wenn dort faktische Fehler sind, kannst du dich im Nachhinein nicht darauf berufen.

Ich kann jetzt nur Argumente sammeln, um HINTERHER bei der Klausureinsicht was in der Hand zu haben, falls die Sachen anders da stehen, als er sie hören möchte Da kannst du sammeln wie du willst, die sind alle für die Tonne, da musst du vorher nachhaken. Es geht immerhin nicht um Korrekturfehler.

Würde der Prüfer auch nur eine nachträgliche Korrektur deinerseits als richtig bewerten, müsste er theoretisch die Antworten aller anderen die die "falsche" Antwort aus dem Skript gegeben haben, als Fehler und damit mit Punktabzug bewerten. So würde man sich schnell viele Freunde unter den Kommilitonen machen gg Aber wie gesagt, das geht eh nicht.

Da du anscheinend ja schon kurz vor den Prüfungen stehst - lern das ausm Skript und nächstmal weißt es besser und korrigierst den Prof sofort.

Das mit den 14 Tagen ist aber eh seltsam - dann dürfte in der Zeit ja kein neuer Stoff behandelt werden durch den Nachfragen entstehen könnten - komische Argumentation von ihm.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo talla,

Würde der Prüfer auch nur eine nachträgliche Korrektur deinerseits als richtig bewerten, müsste er theoretisch die Antworten aller anderen die die "falsche" Antwort aus dem Skript gegeben haben, als Fehler und damit mit Punktabzug bewerten.

theoretisch vielleicht und selbst das eigentlich nicht. Praktisch sollte man als Prüfling, der eine laut Professor und Skript korrekte Lösung gibt, Vertrauensschutz genießen. Selbst wenn die Antwort objektiv falsch ist, müsste sie als richtig gewertet werden, wenn der Professor und das Skript es die ganze Zeit anders erklärt haben. Andersherum kann man wohl mit Fug und Recht verlangen, dass eine objektiv richtige Antwort ebenfalls als richtig bewertet wird. Insofern würde ich das nicht so schwarz sehen.

Natürlich ist es richtig und sinnvoll, den Professor sofort zu korrigieren, wenn er Quatsch erzählt. Zumindest sofort, nachdem man es bemerkt. Allerdings sehe ich das nicht als Quasi-Verpflichtung wie du es darstellst. Eine unterbliebene Korrektur darf einem jedenfalls nicht zum Nachteil ausgelegt werden. Dass man sich durch eine unterbliebene Korrektur möglicherweise unnötigen Aufwand einhandelt, zum Beispiel wenn man sich nachher darum streiten muss, ob eine bestimmte Antwort richtig ist oder nicht, steht auf einem anderen Blatt.

herbivore

849 Beiträge seit 2006
vor 11 Jahren

Hmm werden bei ASP.net nicht tatsächlich source dateien veröffentlicht die erst beim ersten aufruf compiliert werden? Werde das morgen einmal checken.. Das würde zumindest den twitter erklären.

2.298 Beiträge seit 2010
vor 11 Jahren

Hmm werden bei ASP.net nicht tatsächlich source dateien veröffentlicht die erst beim ersten aufruf compiliert werden? Werde das morgen einmal checken.. Das würde zumindest den twitter erklären.

Stimmt, du hast Recht. Allerdings ist es Grundlegend falsch ASP.NET unter Unmanaged einzuordnen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

16.842 Beiträge seit 2008
vor 11 Jahren

Hmm werden bei ASP.net nicht tatsächlich source dateien veröffentlicht die erst beim ersten aufruf compiliert werden?

Pauschalisiert ASP.NET bitte nicht so :evil:
File Handling During ASP.NET Precompilation

U
1.688 Beiträge seit 2007
vor 11 Jahren

Hmm werden bei ASP.net nicht tatsächlich source dateien veröffentlicht die erst beim ersten aufruf compiliert werden?

Nicht unbedingt - wenn der C#-Code nicht in einer (bspw.) .ashx-Datei, sondern in einer separaten Code-Behind-Datei liegt. Dann gibt's eine DLL.

Als "Zwitter" kann man vor allem C++/CLI-Assemblies sehen, die ohne P/Invoke managed und unmanaged Code enthalten können.

16.842 Beiträge seit 2008
vor 11 Jahren

Nicht unbedingt - wenn der C#-Code nicht in einer (bspw.) .ashx-Datei, sondern in einer separaten Code-Behind-Datei liegt. Dann gibt's eine DLL.

.. was nur für die WebForms-Welt gilt.

Man kann zwar bei ASP.NET MVC auch C# Code in die Views setzen; was aber so nicht gedacht ist.
Bei MVC nutzt man hingegen - wie bei WPF - ViewModels, sodass man quasi nur noch mit Properties in den Views arbeiten muss. Dadurch befindet sich also der komplette logische C#-Code in einer kompilierten DLL.
In WebForms ist es aber gang und gebe, dass sich C# Code direkt in den View-Files befindet.

Eventuell will der Herr Prof dies als Zwitter bezeichnen; wobei ich eher davon ausgehe, dass ihm ASP.NET Allgemein bekannt ist und hier auch die allgemeine Haltung "ASP ist ASP" gefahren wird, was natürlich falsch ist. WPF ist nicht Windows Forms, wie ASP.NET WebForms eben auch nicht ASP.NET MVC ist.

5.658 Beiträge seit 2006
vor 11 Jahren

Beim 2. Punkt wird er wohl entweder geträumt haben, oder er weis es wirklich nicht besser. Natürlich hast du recht und es kommen Visual Basic .NET sowie C++/Cli zum Einsatz.

Er wird sicherlich "Managed C++" gemeint haben. C++/CLI ist (wie ujr bereits angemerkt hat) sowohl managed als auch unmanaged. Siehe dazu auch Unterschiede zwischen C++/CLI und Managed C++.

Christian

Weeks of programming can save you hours of planning

5.742 Beiträge seit 2007
vor 11 Jahren

Das "einfachste" wird sein, wenn du einfach die falsche Variante deines Dozenten für die Klausur lernst und dir "für's Leben" die richtige Variante merkst.

Alles andere wäre - meiner Erfahrung nach - zwar sicherlich ein Zeichen für Eigeninitiative und Engagement; wird dir aber relativ sicher bei der Klausurbewertung alles andere als positiv angerechnet.

Mich persönlich stört so etwas zwar auch - ich musste mich aber damit abfinden, dass diejenigen, die quasi das Skript auswendig lernen, häufig bessere Ergebnisse einfahren, als diejenigen, die auch tatsächlich verstehen, was sie da eigentlich gelesen haben und sich auch mal außerhalb des Skriptes informieren (und somit halt auch mal leicht vom Skript abweichende Lösungen niederschreiben).