ASP.net Sprache C# Erste Erfahrungen

Christian Fein

Erfahrenes Mitglied
Zu allererst ist sicherlich bekannt das das .net Framework in der Beta 2 zum freien Download auf der Microsoft Seite bereitsteht.

Ich habe naja diese Woche angefangen ernsthaft in C# zu programmieren. Nicht asp sondern compilierte .exe Programme die auf dem .net Framework laufen.

Deshalb hier meine bisherigen Erkenntnisse fuer diejenigen die es interressiert :)

zuerst zum .net Framework

Der Hauptunterschied beim Programmieren auf dem .net Framework zum bisherigen Programmieren (z.B. in C++) besteht darin das
der Code nicht gleich komplett compiliert wird sondern in eine art zwischen sprache MIL (Microsoft Intermediate Language ??wars glaub) uebersetzt wird.
Um dann bei gebrauch vom framework compiliert zu werden.
Genau da liegt die grosse staerke von .net Auf .net programmierte Programme sind somit auch auf anderen Betriebssystemen (Linux, MacOs) lauffaehig sobald das .net Framework installiert ist.
Fuer Linux wird es gerade entwickelt.
Das heisst das auch Linux in zukunft mit Programmen beliefert werden kann die normalerweise sonst "nur " windows verfuegbar waren wie z.B.
Photoshop ! Oder auch Microsoft Visual Studio !
Genau da habe ich grosse augen gemacht :eek: denn wie bekannt ist, geht Microsofts Firmen Ideologie normal weit ab von Kompatiblitaet.
Sie geben somit einen grossen Vorteil aus der Hand. Und zwar diesen das Windows die beste Software unterstuetzung erfaehrt.
Drum habe ich mir ueberlegt weshalb MS so etwas zulaesst.
1. Moeglichkeit
Microsoft ist reich genug :)
2. Moeglichkeit
Bill Gates hat selber Linux auf dem Heimrechner und will gute Software dafuer haben :rolleyes:
3. Moeglichkeit
.net ermoeglicht u.a. die Implementierung weiterer Software. Eine neue generation von IT.
Genau das ist am meisten Wahrscheinlich. Es ist mit dieser Technick moeglich das mann in zukunft keine Software kauft sondern sie ueber das internet nutzt. Das Microsoft an einem Internet Zahlungssystem arbeitet ist ja hinlaenglich bekannt.
Was hat das ganze mit ASP zu tun?
Ganz klar ASP.net wird sehr stark da es in C# (sehr starke objektorientierte Sprache) und Visual Basic (nicht nur VBscript)
geschrieben werden kann.
ASP.net wird meiner meinung nach das Bindeglied zwischen Programmierter Software und der uebertragung an den Clienten.
(Bedenke das sind nur meine Ueberlegungen).

Alles in allem bin ich mittlerweile von C# sehr ueberzeugt auch wenn dies doch um einiges schwerer zu erlenen ist als VBscript oder PHP.

Zum Abschluss will ich mal eine kleines Programm von mir geschrieben hier reinpasten um euch einen einblick in die Syntax zu geben.
Es handelt sich um nichts anderes als ein Object das 3 Namen in sich speichert und 3 methoden besitzt.
Die 1. fragt nach den Namen & Speichert sie
Die 2. methode ermittelt die groesse des Arrays
Die 3. methode gibt das Array aus anhand des uebermittelten parameter:
Code:
using System;

public class NameArray
     {
     private string[] name= new string[3];
    
     
     public void Fill()
	{ 
	Console.Write("Insert name 1: ");
	name[0] = Console.ReadLine();
            Console.Write("Insert name 2: ");
	    name[1] = Console.ReadLine();
            Console.Write("Insert name 3: ");
	name[2] = Console.ReadLine();
        }
                
        public int size()
          {
            int size;
            size =  name.Length;
            return size;
          }
               
        public string Output(int e)
          {
             string ReturnName;
             ReturnName = name[e];
             return ReturnName;
          }
    }  //obj


public class arrobbj
{     

    
    public static void Main()
   {
    int e;
    int sizeA;
    string[] nameA = new string[3];
    NameArray myArray = new NameArray();
    myArray.Fill();
    sizeA = myArray.size();
    for (e = 0; e < 3; e++)
     {
    nameA[e] = myArray.Output(e);
     }
     Console.Write("Array 0 : ");
     Console.WriteLine(nameA[0]);
      Console.Write("Array 1 : ");
     Console.WriteLine(nameA[1]);
      Console.Write("Array 2 : ");
     Console.WriteLine(nameA[2]);
       }
     
}


Nun mich wuerde interressieren ob hier schon jemand erfahrungen mit dieser neuen technik gemacht hat ?
Und wie sieht ihr das ? Was bezweckt microsoft damit ?

Ich persoehnlich bin sehr gespannt auf die Zukunft.
PS: Mann munkelt es wird ein Mircrosoft Windows .net geben welches zu teilen ebenso in C# geschrieben wird !
 

Husky

Erfahrenes Mitglied
is das was neues ? ich denke nich. Java giebs auch schon sau lange. und ? es hat sich nicht durchgesätzt. warum sollte das hier anders sein ? in Java kann man eigentlich auch alles schreiben was du mit c++ schreiben kannst(meiner meinung nach zumindest). und das c# da so viel schneller is als java wird ich auch mal bezweifeln.
 

Christian Fein

Erfahrenes Mitglied
ja .net ist schneller.

Bewiesenermassen schneller.
Die geschwindigkeit ist annaehernd von C++
Java hat sich zwar noch nicht durchgesetzt aber es steckt hinter der .net technologie um einiges mehr als hinter java.
Wie gesagt es ist auch windows geplant welches vollends auf diesem framework aufbaut und microsoft ist ebenso ein argument.
Mann kann von MS halten was mann will aber was die bisher angepackt haben hat funktioniert udn sich durchgesetzt.
 

Christian Fein

Erfahrenes Mitglied
genau ein echt nicht zu verrachtender Vorteil.
Ebenso das mann mit auch zwischen Visual Basic und anderen Sprachen Problemlos Werte austauschen kann :)
 

krypta

Erfahrenes Mitglied
omg ... habt ihr das auch schon entdeckt? ;)

naja, zum thema: ich arbeite mit .net seit (fast) einem jahr ... genauer gesagt: seit der beta1

was soll man darueber sagen? die moeglichkeiten sind schier unendlich. ms hat tausende von programmierern 4 jahre am framewerk entwickeln lassen und das ergebnis bekommt man mittlerweile zu sehen

ich habe den vorteil bei einer firma beschaeftigt zu sein die sehr stark mit ms zusammenarbeit und kann euch nur sagen: bis jetzt ist nur ein bruchteil nach aussen gedrungen was noch moeglich sein kann und wird

ach ja: die portierungen auf andere os wird nicht von ms erledigt sondern von 'anderen' ... im falle von linux hoerte ich von einer opensource-community ... blabla ;)

<i>"Ganz klar ASP.net wird sehr stark da es in C# (sehr starke objektorientierte Sprache) und Visual Basic (nicht nur VBscript)
geschrieben werden kann"</i>

1) erm ... sorry ... asp.net hat nichts mit der script-sprache dahinter zu tun ... der html-code (asp.net generiert ja nichts anderes ... maximal ein bisschen javascript und dhtml noch dazu) hat nichts mehr mit dem code am hut (ganz anders als in anderen sprachen wie zB asp) ... schlussendlich bleiben ja nur mehr die dll's ueber die die .net-runtime ausfuehrt

2)c#, j#.net, VisualBasic.NET (und die restlichen 27 sprachen die das framework unterstuetzt) sind alle OO und greifen alle auf die gleichen klassen/objekte zu (IL machts moeglich ;))
 

krypta

Erfahrenes Mitglied
"Und wie sieht ihr das ? Was bezweckt microsoft damit ?"

ganz klar: die komplette kontrolle ... ich weiss ja nicht wie weit du dich damit beschaeftigt hast, aber: integration von passport ist mittlerweile vollkommen; .net compact framework (fuer mobile devices wie mobiltelefone, pocket pc's, ...); <font size=-2>wollte noch was schreiben, hab's jetzt aber vergessen ;)</font>

"PS: Mann munkelt es wird ein Mircrosoft Windows .net geben welches zu teilen ebenso in C# geschrieben wird!

nix mit munkeln ;) ms produziert nachfolger fuer zB jeden w2k server (normaler server, advanced, datacenter,...) ... sie heissen halt dann: windows .net server, windows .net datacenter server, ...

btw: beta3 laeuft schon mal ganz gut ;)

"ja .net ist schneller."

.net ist/wird kaum schneller ... vor allem der allererste aufruf (und die darauffolgende kompilation) ist extrem langsam (mann, war das peinlich als ich auf den developer days in wien war ;) LoL)
 

krypta

Erfahrenes Mitglied
sorry, das ich 3 postings machen musste aber vb zickte derbe rum ;)

abschliessend noch ein paar evtl interessante informationen die mir gerade so eingefallen sind:
# visual studio .net (momentan rc ~> timebombed bis 28.02.2002) wird fuer subscriber ab ende dezember downloadbar sein; mitte jaenner in den entsprechenden select pool's und mitte feber im handel
# die runtime ... der riesennachteil von .net: jedes normale window form (normale windows-applikation) wächst um 15mb im installer (so gross ist sie) ... sie wird aber wahrscheinlich optional zum dl bereitgestellt werden da die low-level-browser (ratet mal wenn ms so nennt ;)) sonst mit dem von manchen controls generierten code nicht zurechtkommen

boah, ich haette noch soviel zu schreiben aber keinen bock ;)

wer dieses posting jetzt zu ende gelesen hat und fragen hat: icq# 117666687 ;)

ps: sorry ... erst jetzt gesehen das html hier unterbunden wird :(
 

Christian Fein

Erfahrenes Mitglied
.net ist/wird kaum schneller ... vor allem der allererste aufruf (und die darauffolgende kompilation) ist extrem langsam (mann, war das peinlich als ich auf den developer days in wien war LoL)

Da muss ich dir widersprechen :)
Allein durch die Implementation von ADO.net und die dazugehoerenden DataSets werden viele Zeitaufwendigen Datenbank verbindungen erheblich beschleunigt. Ausserdem spreche ich von grossen Projekten und diese werden eher weniger immer neu kompelliert.



" erm ... sorry ... asp.net hat nichts mit der script-sprache dahinter zu tun ..."

Oehm wo habe ich das behauptet :) als C++ Programmierer kann ich sehr wohl unterschiede zwischen einer Scriptsprache und einer OOP sprache erkennen ;)

"nix mit munkeln ms produziert nachfolger fuer zB jeden w2k server (normaler server, advanced, datacenter,...)"

Jepp !

"die portierungen auf andere os wird nicht von ms erledigt "

Das ist mir auch soweit klar :)
Aber MS wird dem keine Steine in den Weg werfen.

"c#, j#.net, VisualBasic.NET (und die restlichen 27 sprachen die das framework unterstuetzt) sind alle OO "

Da stimme ich nicht ganz mit dir ueberein zumindest die mehrfachvererbung ist in allen .net sprachen beschnitten (nur mit Templates)
also ca 99% oop :)

Nun zu den Dingen die mir nun nach etwas mehr erfahrung sehr gut gefallen:

Mit das beste und auch entwicklungsziel bei asp.net ist die Trennung von Layout und Logic einer Page. Sprich HTML und Code.
Wenn manns geschickt anstellt brauch mann auf einer asp.NET page nie Code & HTML zu mischen.
Die Uebersichtlichkeit gewinnt und nun hat mann die moeglichkeit das die HTLM Coder und die ASP Coder gleichzeitig an einer Seite arbeiten und sich nicht in die Quere kommen.

Als beispiel:

Ziel ists eine Seite mit ein paar Links die dynamisch aus der Datenbank kommen zu generieren.

Der Coder codet in einer CS (oder VB usw) Datei den Code
Der HTML brauch nur kenntniss ueber ein paar zusaetzliche Tags zu erwerben. Wie in diesem Fall :
<asp:placeHolder id="LinkPlace" runat="server"/>

Dieser PlaceHolder ist nun im Code als Object ansprechbar um ihn verschiedene Attribute anzu"haften"
Code:
for(int i=1;i<Menu.TitelName.Length-1;i++)
        {
	HyperLink SmallLinks = new HyperLink();
	SmallLinks.Text =Menu.TitelName[i];
                SmallLinks.CssClass = "tb";
	SmallLinks.NavigateUrl = "#";
	LinkPlace.Controls.Add(SmallLinks);
			
       }

So laueft das mit allen Spezifischen <asp: Tags. Aber auch "normale" HTML Tags koennen im Code sauber und uebersichtlich veraendert werden. Es muss einzig mit dem Attribut runat="server" und einer id (Objectname) ausgestattet werden.

Als Beispiel hierfuer :
in ASP :
koennte ein Frame Tag so aussehen
<frame name="left" src="<%=Variable %>&name=<%=varible %>scrolling="auto" >

Falls noch ein oder ein anderes If eingebaut wird haben wir ein Problem mit der nachvollziehbarkeit fuer reine HTML Designer ohne ASP Kenntnisse.

ASP.Net schafft hier schon abhilfe:

<frame name="left" id="LeftFrame" scrolling="auto" runat="server"/>

kann mit folgendem Code "bedient" werden:
Code:
   LeftFrame.Attributes["src"] = "waren.aspx?name="+thisFrames.ShopName+"&link_big="+thisFrames.BigLink;

Stellt euch vor ihr schreibt ein grosses WebProject in einem Team. Der ASP oder PHP Code steht (mitten im HTML)
ihr habt 2-3 HTML-Designer die ihr handwerk verstehen (HTML - Photoshop) aber vom Scripten kein Plan haben.
Diesen ists bisher unmoeglich das Design ohne Hilfe der Programmierer anzupassen. Mit ASP.net ist das jedoch moeglich.
Da alles sauber von einander getrennt ist.

PS:
krypta wenn du guten Kontact zu ms.de hast frag die m al ob die mich nicht fuer Oeffentlichkeitsarbeit gebrauchen koennen. Als Refferrenz kann ich diesen "WerbeThread" anbieten :)
 

scavanger

Mitglied
von wegen durchsetzten,

ich bin mir sogar sicher dass sich asp .net durchsetzten wird. wie es bereits mit dos, windows und dem ie passiert ist. alle hatten am anfang schwierigkeiten, haben sich am ende aber durchgesetzt.

und wenn diese scripts auch noch auf linux servern laufen, dann erst recht.

guten rutsch ins neue jahr

christian grail