Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Visual Studio

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
27.03.2003, 15:47 Uhr
KaizerQuint89



Und wie kann ich Windows Programme erstellen ohne das man Net-Framework brauch
--
C++ ist geil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
27.03.2003, 15:50 Uhr
Bruder Leif
dances with systems
(Operator)


...entweder mit dem reinen Windows-API, oder mit den MFC und den Wizards von C++. Ist in etwa wie beim Borland-Compiler mit den OWL, nur nicht ganz so stark abstrahiert...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
27.03.2003, 16:05 Uhr
~0xdeadbeef
Gast


Da muss ich gleich mal zurückkontran. Nach Auskunft von Microsoft (und ich gehe mal einfach davon aus, dass die ihre Produkte kennen, oder wenn sie sie nicht kennen, zumindest nicht behaupten, die könnten irgendwas _nicht_) kann die neueste Version von VS.NET keine generics und daher auch keine templates. Das resultiert angeblich daraus, dass die Programmiersprachen *.NET sich nur durch die Benennung der syntaktischen Konstrukte unterscheiden. Statt "class" schreibst du "Begin Class", oder Dinge in der Richtung. Im Grunde wäre es möglich, so sagte es mir der Typ bei MS, ein beliebiges C#.NET-Programm quasi per sed-Script in ein VB.NET-Programm zu übersetzen und umgekehrt. Dasselbe gelte für J#, Managed C++ und was es da sonst noch gibt. Im Grunde macht die erste Stufe des .NET-Compilers auch garnichts anderes, als eine Art sed-Script auszuführen, was das entsprechende Programm in die MS-eigene Meta-Sprache übersetzt, die dann von eigentlichen Compiler in die Intermediate Language umgesetzt wird, die beim Programmstart JIT-kompiliert und ausgeführt wird.

Übrigens: Die "kläglichen versuche", wie du es nennst, von Sun, eine vernünftige Java-IDE rauszubringen haben in Sun ONE gemündet, einer IDE, die ziemlich brauchbar ist und keine paar Hundert Euro kostet, sondern umsonst zu haben ist. Für Nichts, Nada. Wenn du unbedingt Geld ausgeben willst, nimm Borland JBuilder oder IntelliJ IDEA. Ansonsten frag mal google, zum Beispiel gibt es da JCreator.
Alle diese IDEs haben einen großen Vorteil gegenüber allen IDEs, die M$ je verkauft hat: Sie produzieren Code, durch den man nachher auch wieder durchfindet. Diese ganzen MS-IDEs sehen ja sehr modisch aus, und für kleinere Anwendungen, die sowieso nur die MS-System-Controls verwenden mag das ja ausreichen, aber bei ernsthaften Dingen bist du mit dieser Bunti-bunti-klicki-klicki-Geschichte sehr schnell aufgeschmissen. Nur um ein Beispiel zu nennen: Dein hochgelobter MS-Forms-Editor produziert ein Event-Handling, dass geradezu grausam ist. Sowas in der Art:

C++:
class Form1 : public Form {

//bisschen code

    void button1_click() {
        //code, der ausgeführt wird, wenn button1 geklickt wird.
    }

//bisschen mehr code
};


Ne danke, da bleib ich lieber bei EventListenern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
27.03.2003, 17:44 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Kontra, Re, Bock... zwei Welten prallen aufeinander. Sollten wir das nicht lieber im Glaubenskrieg-Thread weiter austragen? Nicht daß wir noch beide aus dem Forum verbannt werden ;-) Ach, was soll's:

Zum Thema "einziger Unterschied = Syntax": Siehe weiter oben in diesem Thread. Ist VS .NET schlecht, nur weil fünf der sechs standardmäßig unterstützten Sprachen in denselben P-Code compiliert werden? Dann wäre Java nicht besser, ist doch auch P-Code...

Zum Thema "Sprache ohne Templates = schlecht": Wieviele der Programmiersprachen, die heute wirtschaftliche Bedeutung haben, unterstützen keine Templates? Baut der Großteil unserer IT-Infrastruktur auf "schlechten" Systemen auf? Wenn Du Interfaces (die .NET genauso unterstützt wie Java, keine Widerrede *g*) vernünftig einsetzt, kommt 1. das selbe raus wie mit Templates, und 2. ist es wesentlich sicherer. Unterstützt eigentlich Java Templates?
Abgesehen davon vergleichst Du in Deinem anderen Post Äpfel mit Birnen: Du beziehst Dich auf den C++-Compiler und gibst an, es gebe keine Templates - die gibt es in C++ sehr wohl. Nur weil die Entwicklungsumgebung ein ".NET" im Namen hat, sind deshalb nicht ALLE unterstützten Sprachen .NET - der C++-Compiler kann nach wie vor reinen Native Code erzeugen und ist WESENTLICH ISO-Konformer als die Vorgänger. Abgesehen davon - wirklich 100%ig konform ist nicht mal die GCC...

@Sun: Wußt ich's doch, daß Du das nicht stehenläßt *gggggg* Es ist gut und schön, daß Sun ONE kostenlos ist. Aber es gibt auch für .NET genug kostenlose Entwicklungsumgebungen, und mit denen komme ich persönlich wesentlich besser zurecht als mit ONE. Abgesehen davon, daß die 1.4.1er-Version bei mir dauernd abstürzt und auf meinem alten PIII-700er damit kaum zu arbeiten ist. Das gleiche Bild beim JBuilder: Die 4er und 6er Version sind bei mir instabil und extrem langsam. Und mein Windows IST stabil, daran liegt es nicht. Und nur, um eine weitere Programmiersprache in meinen Lebenslauf aufzunehmen, kauf ich mir keinen neuen Rechner, der alte tut's einwandfrei.
Mit dem JCreator hab ich schon gearbeitet, ist ein sehr guter Editor. Aber wenn ich wie z.Zt. eine Fakturierung zu schreiben habe, kann ich mich nicht damit aufhalten, jeden einzelnen JLabel und jedes JTextField einzeln von Hand zu positionieren. Bei "ernsthaften Dingen", sprich: In der Praxis, muß es SCHNELL gehen. Und ein Quelltexteditor ist eben kein GUI-Editor. Wenn Du das als "bunti-bunti-klicki-klicki" bezeichnen willst, OK...

@Event-Handling: Was bitte ist daran grausam? Ich habe eine Methode, die aufgerufen wird, wenn ein Ereignis ausgelöst wird. Das ist genau das, was ich von Event Handling erwarte. Java macht's genauso, nur eben über anonyme Klassen statt mit Delegaten...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
27.03.2003, 18:57 Uhr
KaizerQuint89



Heißt das, ich kann keine Windowsprogrammierung ohne Framework in VS.net vornehmen?
--
C++ ist geil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
27.03.2003, 20:17 Uhr
Bruder Leif
dances with systems
(Operator)


Doch! Natürlich geht das! Du kannst wie in den bisherigen Visual C++-Editionen ganz normal mit C++ programmieren, z.B. mit dem Windows-API oder den MFC. Niemand zwingt Dich, .NET zu verwenden, und niemand zwingt Dich zu den MFC. Wenn Du simples C programmieren willst, auch kein Problem, ist alles möglich.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
28.03.2003, 10:48 Uhr
KaizerQuint89



Aber wie siehts mit C# und VB aus
--
C++ ist geil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
28.03.2003, 12:41 Uhr
~0xdeadbeef
Gast


Zu "einziger Unterschied Syntax": Wenns nur das wäre, wärs ok. Aber laut diesem Messertypen ist die Struktur der Sprachen _haargenau_ die gleiche, so dass es tatsächlich vom software engineering her keinen Unterschied mehr macht, welche Sprache du benutzt. Wenn du dir dagegen zum Beispiel die Unterschiede zwischen Java und AspectJ ankuckst - die werden auch in denselben Bytecode übersetzt, aber es gibt himmelweite Unterschiede in der Sprachstruktur, und das ist es, wovon ich rede.

Zu "Sprache ohne templates=schlecht": Das habe ich so nicht gesagt. Aber C++ ohne templates ist sogar ziemlich schlecht, weil damit auch die STL flachfällt, die ein großer Teil des ISO-Standards ist. Java kriegt demnächst templates, bzw. generics.
Was C++.NET angeht - ich habe kein VS.NET, deswegen kann ich das grad nicht verifizieren, aber ich ging stark davon aus, dass der Typ auf der CeBIT, der im übrigen die ganze Zeit nebenher mit VS.NET gearbeitet hat, wohl weiss, was der Compiler, mit dem er die ganze Zeit arbeitet, kann. Vielleicht hat er auch nur von Managed C++ gesprochen, aber auch da erwarte ich ISO-Konformität.

Wegen der IDEs: Mal abgesehen davon, dass das Geschmackssache ist, mein Linux ist auch stabil, und ich kann mit allen IDEs gut arbeiten, sowohl mit Sun ONE, als auch mit JBuilder, als auch mit JCreator, und die Dinger sind mir _alle_ kein einziges mal abgeschmiert.

Wegen Eventhandling: Das Java-Eventhandling ist deutlich flexibler. Du kannst einem Event mehrere Listener zuweisen, du kannst die Eventlistener zur Laufzeit austauschen, und du kannst sie zwischen verschiedenen Objekten hin und her reichen oder einen Eventlistener in mehreren Objekten verwenden - alles Dinge, die der Delegatenansatz (meines Wissens) nicht bringt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
28.03.2003, 14:35 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

@KaizerQuint89:
Geht nicht. C#, J#, VB.NET, JavaScript.NET und Managed C++ sind auf das .NET-Framework angewiesen.
Nur REINES C++ läuft auch ohne, egal ob mit oder ohne STL bzw. MFC. Wenn Du in Visual Basic "reine" Windows-Programme schreiben willst, ohne das Framework zu installieren, mußt Du bei VB 6.0 bleiben. Nachdem Du dabei die VB-Runtime-DLLs mit ausliefern mußt, kommt bei der Verteilung aber der selbe Aufwand raus. Wenn Du das Framework 100% statisch Einbinden willst, schau Dir mal Delphi bzw. C++Builder an, da geht das.

@0xdeadbeef:
Also nochmal *seufz*. Von der Seite des Software-Engineering aus machen die Sprachen wie gesagt keinen Unterschied. Aber wenn Du einem Programmierer, der jahrelang nur Visual Basic gesehen hast, C# vorsetzt, wird ihm das Messer in der Tasche aufklappen. Wenn er aber weiterhin mit Visual Basic arbeiten kann, und nur an einigen Stellen etwas umdenken bzw. dazulernen muß, an denen die Sprache erweitert wurde, wird er damit leben können. Es geht hier nicht um Paradigmen, es geht um die Wiederverwendbarkeit von Code und Wissen. Was meinst Du, warum Fujitsu einen Fortran.NET-Compiler entwickelt hat? Warum es einen COBOL.NET-Compiler gibt? Es geht in erster Linie darum, bestehende Quelltexte möglichst ohne große Änderungen von .NET aus ansprechen zu können. Freaks und Hobbyisten macht es vielleicht nichts aus, ein bestehendes 100KLOC-Programm mal eben aufzugeben, um es in einer völlig anderen Sprache/Paradigma/Strategie neu hochzuziehen. Aber ein Berufsprogrammierer wird sich kaum für einen solchen Ansatz begeistern können...

Zu "C++.NET ohne Templates, ohne STL": Schau mal...

C++:
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
   vector<string> x;
   x.push_back("forever trusting who we are");
   x.push_back("and nothing else matters");

   for(vector<string>::iterator it = x.begin(); it != x.end(); it++)
      cout << *it << endl;

   return 0;
}



Der Quelltext wird vom Visual C++ .NET-Compiler sowohl native als auch mit der /clr-Option (also für die .NET-CLR) ohne Murren geschluckt. Ich weiß ja nicht, was der Typ auf der CeBIT dazu gesagt hätte, aber ich würde das schon als STL bezeichnen...

Oder Du kombinierst das .NET-Framework mit der STL, z.B.

C++:
#using <mscorlib.dll>

#include <string>
#include <vector>

using namespace std;

int main()
{
   vector<string> x;
   x.push_back("I once had a girl, or should I say she once had me?");
   x.push_back("She showed me her room, isn't it good? Norwegian wood.");
   x.push_back("She asked me to stay and she told me to sit anywhere.");
   x.push_back("So I looked around and I noticed there wasn't a chair...");

   for(vector<string>::iterator it = x.begin(); it != x.end(); it++)
      System::Console::WriteLine((*it).c_str());

   return 0;
}



Da bleiben keine Wünsche offen. Offensichtlich hatte der Typ, mit dem Du da gesprochen hast, von Tuten und Blasen keine Ahnung...

Zum Thema "Eventhandling":
1. Mehrere Listener pro Event: Kein Problem mit .NET
2. Austauschen von Listenern zur Laufzeit: Kein Problem mit .NET
3. Hin-und-her-reichen von Listenern: Kein Problem mit .NET
4. Ein Listener für mehrere Objekte: Na was wohl? *g*

Ein kleines Beispiel, diesmal in C#:

C++:
using System;
using System.Windows.Forms;

class MyForm: Form
{
   private Button button1, button2;

//------------------------------------------------------------------------------

   public MyForm()
   {
      button1 = new System.Windows.Forms.Button();
      button2 = new System.Windows.Forms.Button();

      EventHandler myHandler = new EventHandler(buttonClick);

      SuspendLayout();

      button1.Location = new System.Drawing.Point(48, 72);
      button1.Text = "Button1";
      button1.Click += myHandler;

      button2.Location = new System.Drawing.Point(160, 160);
      button2.Text = "Button2";
      button2.Click += myHandler;  // Derselbe wie oben
      button2.Click += new EventHandler(buttonClickNummerZwei);  // und noch einer dazu

      Controls.AddRange(new System.Windows.Forms.Control[] {button1, button2});
      Text = "Nicht anklichen!";
      ResumeLayout(false);
   }

//------------------------------------------------------------------------------

   void buttonClick(object sender, System.EventArgs e)
   {
      MessageBox.Show("Aua!");
   }

//------------------------------------------------------------------------------

   void buttonClickNummerZwei(object sender, System.EventArgs e)
   {
      MessageBox.Show("Das sollst Du doch nicht!");
   }

//------------------------------------------------------------------------------
    
   [STAThread]
   public static void Main(string[] args)
   {
      Application.Run(new MyForm());
   }

//------------------------------------------------------------------------------

}            


--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
29.03.2003, 13:17 Uhr
~0xdeadbeef
Gast


Hm. Na gut, dann ist das ganze nicht so schlimm, wie der Typ mir das gesagt hat. Komisch, ich ging schon davon aus, das jemand, der ne Woche Messe damit verbringt, Leuten zu erzählen, wie toll MS VS.NET ist, zumindest weiß, was das Ding kann.

Deswegen frag ich jetzt mal nach: Kann das Ding auch komplexere Eventhandler, also zusammengehörige Events in einer Listener-Klasse kapseln, im Stil von Java-Event-Listenern? Beispiel:

C++:
import javax.swing.*;
import java.awt.event.*;

class MyFrame
    extends JFrame
{
    protected JLabel m_lbMyLabel = new JLabel("Hello, World!", JLabel.CENTER);

    public MyFrame() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        getContentPane().add(m_lbMyLabel);

        addMouseListener(new MouseAdapter() {
                public void mouseEntered(MouseEvent e) {
                    m_lbMyLabel.setText("drin");
                }
                public void mouseExited(MouseEvent e) {
                    m_lbMyLabel.setText("draussen");
                }
            });

    }

    public static void main(String[] args) {
        MyFrame mf = new MyFrame();
        mf.setSize(300, 200);
        mf.setVisible(true);
    }
}


Und, ganz wichtig, kann .NET anonyme Klassen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: