Umstieg Java/Oracle => C#/MSSQL

G

Gast2

Gast
Hi,

Als großer Fan von Java und der Oracle DB schmerzt es mich jetzt sehr das ich mich für den neuen Job auf einen Technologiewechsel gefasst machen muss. Ich habe bisher schon ein wenig begonnen mich mit C# auseinder zusetzen und komme soweit ganz gut klar. Ist ja schon recht ähnlich und die Erfahrungen die ich während der 6 Jahre die ich in Java programmiert habe scheinen sich relativ einfach auf C# übertragen zu lassen. Allerdigns fallen mir immer wieder Kleinigkeiten auf wie z.B. Call by Reference durch [c]ref[/c] Keywords oder das alle das [c]string[/c] Keyword statt der Klasse [c]String[/c] nutzen. Das ist alles etwas merkwürdig.

Gleiches gilt für die DB. Ich hab sehr lange mit Oracle 10g R2 und 11g R2 gearbeitet, viel in PL/SQL programmiert und mich an die Oracle JOIN Syntax usw gewöhnt. Mit TSQL und dem MSSQL SQL Dialekt gerade ich deswegen immer wieder aneinander. Nicht wildes aber halt wie in Java <=> C# Kleinigkeiten.

Hat einer ein paar gutes weblinks oder auch Bücher parat für einen Umstieg? Also ich brauche keine "Jetzt lerne ich programmieren mit C#"-Schinken oder "Datenbankabfragen mit ANSI-SQL" sondern wirklich Literatur oder links für den fortgeschrittenen Programmierer der einfach nur die Plattformen wechseln muss/möchte.

Any Ideas?
 

Cage Hunter

Aktives Mitglied
Ich habe zwar keine Ideen, Du hast jedoch mein Beileid...Allen meines Bekanntenkreises ist genau dieser Umstieg auch "sehr schwer" gefallen, besonders die Syntax von MSSQL soll ja richtig viel Spass machen wenn man an MySQL o.Ä. gewöhnt ist...Ich werde heute mal nachfragen, ob meine Kollegen da ein schönes Buch kennen ;)
 
G

Gast2

Gast
@fassy: Kannst Du Literatur für den Umstieg empfehlen.

Ja, genau das such ich ja auch ;)


Ja, das "Buch" kenne ich. Ist als Referenz durchaus brauchbar - ebenso wie die Insel, allerdings mir zu "gehaltvoll" als Umsteigerlektüre. Ich brauche keine Syntaxerklärungen, was Exceptions sind usw - sondern eher eine Übersicht der Unterschiede der Sprachkonzepte und der .NET Plattform.

Ich denke man kann sich wohl aus vielen Lehrbüchern wie auch dem so das alles zusammen suchen. Aber das muss doch schon mal jemand gemacht haben? :)

Cage Hunter hat gesagt.:
Ich habe zwar keine Ideen, Du hast jedoch mein Beileid [...] Ich werde heute mal nachfragen, ob meine Kollegen da ein schönes Buch kennen

Wäre nett wenn du mal nachfragst. Ich denke mal ich werd damit schon klar kommen. Zumal ich jetzt auch nicht mehr als Entwickler eingestellt bin sondern eine Customer Consulting/Field Support/Training Position habe und nur noch realtiv wenig selber programmieren werde.
 
G

Gast2

Gast
So, ich hab jetzt die ersten paar Wochen rum und kann mal meinen Eindruck schildern.

An für sich unterscheiden sich die Sprachen wirklich recht wenig. Ich hatte bisher nur sehr selten mal ein "WTF?" Erlebnis. Man kann das gesammte Software-Engineering Wissen (Pattern und Co) 1:1 auch weiterverwenden.

Interessante Unterschiede die sich mir bisher aufgetan haben:
=> Properties und Accessoren anstatt Getter/Setter Methoden
Anfangs war ich recht verwirrt warum denn alle C#ler mit public Fields arbeiten und die Kapsulung der OOP brechen. Bis sich mir dann irgendwann das Konzept der Properties auftat, mehr dazu hier:
Using Properties (C# Programming Guide) und Auto-Implemented Properties (C# Programming Guide)
Spart eine Menge Code und wenn man sich dran gewöhnt hat gar nicht mal ein schlechtes Konzept.

=> HashMaps aka Dictionary werfen Exceptions statt null zurück zu geben
Oh ja, das nervt. Wenn man aus einem Dictionary einen Key anfragt wozu es keinen Wert gibt fliegt eine Exception. Daran musst ich mich erstmal gewöhnen, schlimmer noch der nächste Punkt

=> Exceptions sind alle unchecked
Man wieß NIE wo eine Exception auftreten könnte das es keine [c]throws Exception[/c] in den Methoden Signaturen gibt. Also blubbert einem wenn man sich nicht gut mit der API auskennt schnell mal eine Exception tief aus dem Core herauf. Nicht sehr schön...

=> OUT Variablen
Da sind sie wieder, die guten alten OUT Variablen. Ich hasse sie eigentlich in allen mir bekannten Sprachen wo sie verwendet werden - und jetzt hab ich sie wieder an Board. Na egal, gibt schlimmeres und man kann versuchen sie weitgehend zu umschiffen. ;)

Und last but not least: Crappy NamingConvention
Eigentlich beginnt alles mit einem Großbuchstaben, Klassen, Methoden, Accessoren, Properties... *schüttel* ;)

Aber das war es eigentlich auch was mir so auf dern ersten Blick auffällt. Also eigentlich erschreckend wenig.

Guter link für Umsteiger oder an alle die mal in C# aus Java Perspektive schnuppern wollen: C# From a Java Developer's Perspective
 
Zuletzt bearbeitet von einem Moderator:

fastjack

Top Contributor
Wenn von einer beliebigen DB zu MSSQL wechselt, dann ist das kein Umstieg, sondern ein Abstieg. Mein Beileid! Wenns ein neuer Arbeitgeber ist, der MSQQL schon lange benutzt, dann okay, aber wenn Ihr in der Firma nach MSSQL wechselt, würde ich mal die ganzen schlechten Seiten betonen, u.a. fehlende Replikation, "variable" Querylaufzeiten (für ein und dieselben Queries), MemoryLeaks, Vooles Laden der Tabellen in den Serverspeicher, selbst bei top 1 und und und.
Junge, Du bist verloren....
 
G

Gast2

Gast
Du scheinst das die Lizenzpolitik von Microsoft etwas misszuverstehen ... viele Dinge werden nur mit einer Anbindung an MSSQL augeliefert - WinCC / iFix und was weis ich noch für Automatisierung ... iFix verwendet zwar (offiziell) ODBC, läßt sich aber keinen MySQL ODBC-Treiber unterschieben ... manchmal hast Du keine andere Wahl

@fassy: vieles was Du angesprochen hast sind nur Ausreden der Gewohnheit ... ich benutze beide Sprachen und mir ist es egal
 

fastjack

Top Contributor
Ich verstehe fassy. C# ist doch keine Sprache! Das ist irgendein M$-Teil, das alles erlaubt, aber alles ein wenig anders macht, damit sich auch wirklich jeder "wohlfühlen" kann. Was fürn Schmarrn. Das fängt damit an, das Du String schreiben kannst, wie Du willst, groß oder klein, alles Latte. Mit Integer natürlich genauso. Und dann gibt es ja noch den VB-Integer, der wird ein bissel anders geschrieben und hat glaube ich auch noch einen andere Wertebereich. Was fürn sh*t. Dann geht es weiter mit Operatoren-Überladungen. Ja, wenn ich an einem C#-Projekt arbeite, überlade ich regelmäßig - mit + und + mit -. Bis die anderen merken, was abgeht, sind schon viele Stunde verbrannt in der M$-Hölle. Die Aufzählung, die ich mit C#-Ungereimtheiten gemacht habe, geht gegen unendlich. Wenn es um Webservices und deren Anbindung an andere Sprachen geht (C#-Java, Java-C#) als Beispiel, wirds richtig spannend, da M$ hier alles nach seinen eigenen Standards und mit der super-veralteten xmlws.dll (oder so ähnlich) von VB macht. 1A mit Klasse! Großes "pfui-i-bah-tatta-mit-pippi" würden meine Kleinen sagen! Und Leute, mal ganz erhlich, daß hat sich Billy auch gedacht, als er die erste Master von C# in Druck gegeben hat (er lacht noch heute hämisch).

P.S.: ich verstehe die Lizenzpolitik von M$ auch nicht...
 
G

Gast2

Gast
Ich verstehe fassy. C# ist doch keine Sprache!

Nö, eigentlich verstehst du mich eher nicht ;). Was ich eigentlich mit meinem Posting sagen wollte ist: Der Umstieg fällt mir recht leicht weil gar nicht soviel anders ist. Wie mogel schon sagte - eher eine Frage der Gewohnheit.

Klar hat C# einige Ecken - aber nicht mehr oder weniger als Java meiner Ansicht nach.

Wenn von einer beliebigen DB zu MSSQL wechselt, dann ist das kein Umstieg, sondern ein Abstieg. Mein Beileid! Wenns ein neuer Arbeitgeber ist, der MSQQL schon lange benutzt, dann okay,

Da sind wir uns einig. Mit MSSQL werd ich nicht warm und wünsche mir jeden Tag eine 10g oder 11g, mit DataGuard, Shareplex, Toad, SQLNavigator usw zurück. Aber MSSQL ist hier (neue Firma) halt schon lange etabliert.


eRaaaa hat gesagt.:
Hm, dafür gibt es ja anscheinend "TryGetValue"

Ja, kenn ich. Ist halt entgegen der "Gewohnheit" über den Key direkt zuzugreifen. So muss man sich immer auch wieder mit der out Variablen rumschlagen. Ich hab mir allerdings einen kleinen Wrapper gebaut der ein Get(string key) implementiert. Mag man nicht schön finden, aber mir hilft es ;)

mogel hat gesagt.:
@fassy: vieles was Du angesprochen hast sind nur Ausreden der Gewohnheit ... ich benutze beide Sprachen und mir ist es egal

Richtig, sehe ich genauso. Wie gesagt die Properties sind sogar eine Bereicherung. :)

Das Einzige was aus meiner Sicht wirklich ein Designschwachpunkt der Sprache ist, wäre das Exceptionhandling, bzw das die Exceptionsdeklarationen nicht schon zur Compiletime ausgewertet werden können.
 
G

Gelöschtes Mitglied 6946

Gast
Eines der (zum Glück wenigen) Probleme, das ich mit "C Gartenzaun" ;) hatte, war der mitunter etwas seltsame Gültigkeitsbereich von Variablen. Wenn ich eine for-Schleife hatte und in deren Schleifenkörper eine Variable angelegt hatte, dann konnte ich diesen Namen hinter der Schleife (also außerhalb) nicht wiederverwenden, weil es diese schon gab. Gleichzeitig konnte ich aber auf diese Variable nicht zugreifen, da es ja sein konnte, dass die Schleife 0 mal durchlaufen wird und sie somit nicht initialisiert war. Ist dir sowas auch schonmal untergekommen oder war das evtl. ein Problem mit VS oder so?
 
G

Gast2

Gast
Hab ich grade mal ausprobiert - sehr strange indeed:
Code:
for(int i = 0; i < 5; i++){
  Console.Out.WriteLine(i);
}
int i = 0; // compilefehler

Allerdings ist mir das bisher noch nicht einmal so untergekommen da mein Code meist eh so strukturiert ist das es keine gleichen Variablennamen in Schleifen und ausserhalb gibt. Wenn soetwas vorkommt würd ich wahrscheinlich eher die Schleife extrahieren und in eine eigene Methode packen.

Sonst ist mir bisher mit dem Scope nichts weiter aufgefallen. Hab jetzt in 2 Wochen gut 5000 loc produziert und kaum eine Methode ist länger als 5 - 10 Zeilen, also ist das Riskio recht gering das ich da auf solche Probleme stoße ;)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Umstieg von Delphi zu JAVA (wichtige Fragen!) Softwareentwicklung 41
G Umwandung von Vb auf Java Softwareentwicklung 1
von Spotz Kommunikation zwischen Java und Container Orchestrator (Microservices) Softwareentwicklung 11
S Microservices in Java Spring: Nebenläufigkeitsprobleme lösen Softwareentwicklung 6
temi Elementfunktionen vs. Nichtelementfunktionen in Java Softwareentwicklung 20
R Umsetzungen in Java vs. Umsetzungen auf Datenbankebene Softwareentwicklung 9
L Module Eclipse Java 9 Softwareentwicklung 12
R Software-Architekt (Schwerpunkt Java) Softwareentwicklung 9
S VB.NET / C# als Java-Entwickler? Softwareentwicklung 2
J Java Kentnisse vertiefen oder andere Programmiersprache probieren? Softwareentwicklung 8
U Java vs. anderen plattformunabhängige Programmiersprachen Softwareentwicklung 8
S JNI Java from C Softwareentwicklung 0
H [Java]Regex Hilfe Softwareentwicklung 3
D Teamspeak Java html app Softwareentwicklung 5
N UML Komponenten als Java-Klassen abbilden Softwareentwicklung 4
S Java Anfänger hat Probleme mit Scanner Softwareentwicklung 6
C Lohnt es sich noch ein neues Projekt in C++ anstatt Java zu realisieren? Softwareentwicklung 4
U Java oder welche Sprache? Softwareentwicklung 98
MrWhite Ist Java gar nicht sooo objektorientiert??! Softwareentwicklung 16
J Java Long-Werte in C++ auslesen Softwareentwicklung 4
K Mit "Java" html-Seite entscripten Softwareentwicklung 6
Airwolf89 Theoretische Frage - In Java Java-Programme schreiben Softwareentwicklung 5
G Mischsprache aus Java & C# Softwareentwicklung 23
H COBOL und Java Softwareentwicklung 17
H Java als Backend, Javascript als View Softwareentwicklung 3
D Sind EJB Komponenten auch mit Java Swing nutzbar? Softwareentwicklung 8
U Decorator Pattern in der Java API Softwareentwicklung 6
J Java Software nach C++ portieren Softwareentwicklung 6
C Unterschiede: C++ vs. C# vs. Java Softwareentwicklung 21
A Jira durch Java ansprechen Softwareentwicklung 18
M Immutable Objekte und funktionales Programmieren in Java oder Scala Softwareentwicklung 34
B [Web 2.0] Java vs PHP Softwareentwicklung 28
Raidri Flex mit Java Softwareentwicklung 2
L Java + WCF Softwareentwicklung 9
Airwolf89 Java-Programm in C++ portieren Softwareentwicklung 4
T Kapselung nich vollständig umgesetzt in Java? Softwareentwicklung 4
J Korpus mit Python einlesen - weiterbearbeiten mit Java Softwareentwicklung 4
N c# nach java Softwareentwicklung 14
K Suche freies UML Tool um aus .java dateien Diagramme zu. Softwareentwicklung 8
D Java in KLassen, schon vorhanden? Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
R Java Passwort verschlüsseln --> kompliziert! wirklich doo Softwareentwicklung 13
F vorteile php gegenüber java? Softwareentwicklung 46
M Umwandlung von String in java.sql.Date Softwareentwicklung 2
lolkind Iso Datein per Java über Windows XP brennen Softwareentwicklung 13
U [Diskussion] Java vs. C# Softwareentwicklung 208
E Java Programm distributen Softwareentwicklung 35
J Hardware zugriff mit java? Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G java.lang.ArrayIndexOutOfBoundsException Softwareentwicklung 5
E Default Java unter Linux aendern? Softwareentwicklung 3
S arabische Buchstaben in java ?:L Softwareentwicklung 3
L Noch 'ne Perl-Frage. Kehre dann auch reumütig zu Java zurück Softwareentwicklung 10
G Serveranbindung mit java Softwareentwicklung 24
P Grafik-Programm mit JAVA? Softwareentwicklung 21
F Welche Sprache sieht ähnlich aus wie Java? Softwareentwicklung 7
T Suche A Star Java Beispielprogramm Softwareentwicklung 2
D C# zu Java - Übersetzer gesucht. Softwareentwicklung 3
F Windows Media Player in Java? Softwareentwicklung 11
C C code in java umschreiben Softwareentwicklung 9
O java und c# - die zweite. Softwareentwicklung 7
S Problem PJIRC java-applet Softwareentwicklung 4
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
G C++ in JAVA verpacken Softwareentwicklung 2
D C# vs. java Softwareentwicklung 16
G Darstellung von Java-Projekten mit UML Softwareentwicklung 3
E Java & Performance Softwareentwicklung 9
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3
W Herangehensweise an ein Java Programm Softwareentwicklung 4
B Programmierung eines 8051-Assemblers unter Java Softwareentwicklung 3
M Bidirektionale Assoziazion in Java realisieren? Softwareentwicklung 3
J Java <-> C# Softwareentwicklung 1
S c# schneller java - wieso ? Softwareentwicklung 12
D C++ und Java Softwareentwicklung 61
E CSV-Datei im SQL Navigator oder Oracle SQL Dev. importieren? Softwareentwicklung 1
B Oracle XE Softwareentwicklung 7
rambozola problem mit division in oracle Softwareentwicklung 2
rambozola ORACLE SQL FOR EACH ROW Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben