Clan [+35] Forum
Clan [+35] Forum
[+35] Hovedkvarter | Profil | Tilmeld | Aktive emner | Forummedlemmer | S�gning | FAQ
 Alle fora
 Computere
 [+35].Net
 .NET newbie - Hello World

Note: Du skal være tilmeldt for at skrive indlæg.
Tilmeld dig her. Tilmelding er gratis!

Skærmstørrelse:
Brugernavn:
Kodeord:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Tekst:

* HTML er slået FRA
* Forum-koder er slået TIL
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

E M N E    VISNING
[+35]Lazy Posted - 29 Oct 2005 : 15:46:35
Jeg må se i øjnene at jeg kommer til at arbejde mere og mere med Microsoft produkter og derfor skal jeg også i gang med at lære .NET at kende.

Jeg forventer at komme til at arbejde med flere "sprog" men det primære for mig er at få et grundliggende overblik over .NET frameworket.

Mit udgangspunkt er, at jeg behersker C, C++ og flere andre sprog, men mit kendskab til MS proprietære biblioteker og .NET er stort set lig nul!

Jeg kunne godt tænke mig forslag til:
Bøger, links og andet der kan give mig en god introduktion til frameworket.

Hvis nogen kan komme med anbefalinger i forhold til værktøjer etc. så ville det også være godt

Umiddelbart havde jeg tænkt mig hoppe på et 2 årigt MSDN abonnement (der så vidt jeg kan se inkluderer standardversionen af .NET studio) men hvis det er et smartere bare at købe .NET studio så sig endelig til
30   N Y E S T E    I N D L Æ G    (Nyeste først)
[+35]Terabyte Skrevet - 13 Aug 2006 : 22:49:03
Lol Beerman

Du er da rundt i de gamle arkiver

Når det bliver vintertid igen må vi have denne her vækket til live igen og så er du velkommen til at følge lidt med

[+35]TheBeerMan Skrevet - 13 Aug 2006 : 11:30:07
Hvorfor læste jeg lige alt dette ? edderrøvme tørt :-)
go lyst gutter
[+35]6-shooter_X Skrevet - 08 Nov 2005 : 11:19:21
Lidt med XML, som database. + Opdatering

Gem som "HelloWorldDataXML.cs" og
Oversæt med "csc HelloWorldXMLXML.cs"


using System;
using System.Data;

namespace HelloWorldDataXML
{
	public class HelloWorldApp
	{
		[STAThread]
		static void Main()
		{
			DataSet ds = new DataSet(); 
			ds.ReadXml("hw.xml", XmlReadMode.InferSchema); 
			foreach (DataRow dr in ds.Tables[0].Rows)
			{
				Console.WriteLine("To : " + dr["Recipient"]);
				Console.WriteLine("Message : " + dr["Message"]);
				Console.WriteLine("From : " + dr["Sender"]);
				Console.WriteLine("");
			}

			DataRow NewRow = ds.Tables[0].NewRow();
			NewRow["Recipient"]	= "Miss Piggy";
			NewRow["Message"]	= "Ehmm. hvad skal man sige?";
			NewRow["Sender"]	= "[+35]COW";

			ds.Tables[0].Rows.Add(NewRow);
			ds.WriteXml("hw.xml");
		}
	}
}


Og gem denne som "hw.xml"

<?xml version="1.0" encoding="UTF-8"?>
<MessagesToTheWorld>
	<MessageToTheWorld>
		<Recipient>Whoom it may concern</Recipient>
		<Message>Hello world!</Message>
		<Sender>[+35]</Sender>
	</MessageToTheWorld>
	<MessageToTheWorld>
		<Recipient>COW</Recipient>
		<Message>I er dumme!</Message>
		<Sender>Miss Piggy</Sender>
	</MessageToTheWorld>
</MessagesToTheWorld>
[+35]6-shooter_X Skrevet - 07 Nov 2005 : 15:48:28
Lidt med XML

Gem som "HelloWorldXML.cs" og
Oversæt med "csc HelloWorldXML.cs"


using System;
using System.Xml;

namespace HelloWorldXML
{
	public class HelloWorldApp
	{
		[STAThread]
		static void Main()
		{
			string infilename   = "hw.xml";

			XmlDocument doc = new XmlDocument();
			XmlTextReader tr = new XmlTextReader(infilename);
			doc.Load(tr);

			foreach (XmlNode xe in doc.SelectNodes("//*"))
				if (xe.Name == "MessageToTheWorld")
				{
					string Recipient	= "";
					string Message		= "";
					string Sender		= "";

					foreach (XmlNode xn in xe.ChildNodes)
					{
						switch (xn.Name.ToLower())
						{
							case "recipient"	: Recipient	= xn.InnerText; break;
							case "message"		: Message	= xn.InnerText; break;
							case "sender"		: Sender	= xn.InnerText; break;
						}
					}
					Console.WriteLine("To : " + Recipient);
					Console.WriteLine("Message : " + Message);
					Console.WriteLine("From : " + Sender);
					Console.WriteLine("");
				}
		}
	}
}


Og gem denne som "hw.xml"

<?xml version="1.0" encoding="UTF-8"?>
<MessagesToTheWorld>
	<MessageToTheWorld>
		<Recipient>Whoom it may concern</Recipient>
		<Message>Hello world!</Message>
		<Sender>[+35]</Sender>
	</MessageToTheWorld>
	<MessageToTheWorld>
		<Recipient>COW</Recipient>
		<Message>I er dumme!</Message>
		<Sender>Miss Piggy</Sender>
	</MessageToTheWorld>
</MessagesToTheWorld>
[+35]6-shooter_X Skrevet - 02 Nov 2005 : 11:29:44
En Windows Service.

Skriver til application-eventlog hvert 10. sekund.

Gem som hwservice.cs



using System;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceProcess;
using System.Configuration.Install;

namespace HelloWorldApp
{
	public class HelloWorldSvc : System.ServiceProcess.ServiceBase
	{
		private System.Timers.Timer timer;

		public HelloWorldSvc()
		{
			timer = new System.Timers.Timer();
			timer.Interval = 10000;  // Gør noget hver t 10. sekund
			timer.Elapsed += new System.Timers.ElapsedEventHandler(this.timer_Elapsed);

			CanPauseAndContinue = true;
			CanShutdown = true;
			ServiceName = "HelloWorld_Service";

			timer.Enabled = true;
			timer.Start();
		}

		static void Main()
		{
			System.ServiceProcess.ServiceBase[] ServicesToRun;

			ServicesToRun = new System.ServiceProcess.ServiceBase[] { new HelloWorldSvc() };

			System.ServiceProcess.ServiceBase.Run(ServicesToRun);
		}

		protected override void OnStart(string[] args)
		{
			timer.Start();
		}

		protected override void OnPause()
		{
			timer.Stop();
		}

		protected override void OnContinue()
		{
			timer.Start();
		}

		protected override void OnStop()
		{
			timer.Stop();
		}

		private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
		{
			EventLog.WriteEntry("C# gets the job done on: " + System.Environment.MachineName);
		}
	}

	[RunInstaller(true)]
	public class ProjectInstaller : System.Configuration.Install.Installer
	{
		private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller;
		private System.ServiceProcess.ServiceInstaller serviceInstaller;

		public ProjectInstaller()
		{
			serviceProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller();
			serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
			
			serviceInstaller = new System.ServiceProcess.ServiceInstaller();
			serviceInstaller.StartType = ServiceStartMode.Automatic;
			serviceInstaller.ServiceName = "HelloWorld_Service";
			serviceInstaller.AfterInstall += new System.Configuration.Install.InstallEventHandler(this.serviceInstaller_AfterInstall);

			Installers.AddRange(new System.Configuration.Install.Installer[] { serviceProcessInstaller, serviceInstaller });
		}

		private void serviceInstaller_AfterInstall(object sender, System.Configuration.Install.InstallEventArgs e)
		{
			MessageBox.Show(serviceInstaller.ServiceName + " succesfully installed...");
		}
	}
}


Oversæt med csc hwservice.cs

Gæt hvad de næste filer gør :)

Gem denne som INSTALL.CMD

installutil hwservice.exe



Gem denne som UNINSTALL.CMD

installutil /uninstall hwservice.exe
installutil /u hwservice.exe



Gem denne som STARTSVC.CMD

net start "HelloWorld_Service"



Gem denne som STOPSVC.CMD

net stop "HelloWorld_Service"
[+35]Tomcat Skrevet - 02 Nov 2005 : 05:16:10
det kan jeg roligt sige jeg ikke er, men checker alligevel den her tråd troligt hver dag
man er vel ikke nørd for ingenting
[+35]Terabyte Skrevet - 01 Nov 2005 : 22:54:46
ok - jeg er med hertil
[+35]6-shooter_X Skrevet - 01 Nov 2005 : 22:23:33
Assemblies. Opdeling af programmet.

Først det modul der skal kaldes:


using System;

namespace HelloWorldApp
{
    public class HelloWorldClass
    {
        public HelloWorldClass()
        {
        }
        public void SayIt()
        {
            Console.WriteLine("Hello world !!!");
        }
    }
}


gemmes som hwclass.cs og compileres med : csc /t:library hwclass.cs

"/t:library" betyder at der skal genereres et dll, uden main-funktion.
"/t:exe" betyder at der skal genereres et exe-modul og der checkes for et en gyldig main-metode.
"/t:exe" er default

Og så det kaldende program:

using System;


namespace HelloWorldApp
{
    class HWMain
    {
        static void Main()
        {
            HelloWorldClass hw = new HelloWorldClass();
            hw.SayIt();
        }
    }
}


gemmes som main.cs og compileres med : csc /r:hwclass.dll main.cs

"/r:hwclass.dll" betyder at der skal ledes efter program-"stumper" i hwclass.dll

Kør main.exe
[+35]6-shooter_X Skrevet - 01 Nov 2005 : 10:28:48
Kald af webservice...

Gem som "callws.cs" og kør "csc callws.cs"
Kør callws.exe


using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Xml.Serialization;
using System.Web.Services.Protocols;
using System.Web.Services;

namespace HelloWorldApp
{
	class HelloWorld
	{
		[STAThread]
		static void Main()
		{
			Application.Run(new HWForm());
		}
	} // HelloWorld

	public class HWForm : Form
	{
		private Button 	btnExit;
		private Button 	btnCallHW;
		private Label 	lblHW;

		public HWForm()
		{
			btnExit = new System.Windows.Forms.Button();
			btnExit.Location = new System.Drawing.Point(102, 83);
			btnExit.Size = new System.Drawing.Size(100, 23);
			btnExit.Text = "Exit";
			btnExit.Click += new System.EventHandler(btnExit_Click);

			btnCallHW = new System.Windows.Forms.Button();
			btnCallHW.Location = new System.Drawing.Point(102, 113);
			btnCallHW.Size = new System.Drawing.Size(100, 23);
			btnCallHW.Text = "Call Webservice HW";
			btnCallHW.Click += new System.EventHandler(btnCallHW_Click);

			lblHW		= new System.Windows.Forms.Label();
			lblHW.AutoSize 	= true;
			lblHW.Location 	= new System.Drawing.Point(99, 32);
			lblHW.Text 	= "Hello World!!";

			ClientSize = new System.Drawing.Size(384, 165);
			Controls.Add(this.lblHW);
			Controls.Add(this.btnExit);
			Controls.Add(this.btnCallHW);
			Text = "Hello world !!";
		}

		private void btnExit_Click(object sender, EventArgs e)
		{
			Application.Exit();
		}

		private void btnCallHW_Click(object sender, EventArgs e)
		{
			HelloWorldWS ws = new HelloWorldWS();
			Text = "Received : '"+ ws.HelloWorld() +"' from Webservice";
		}
	} // HWForm

	[System.Web.Services.WebServiceBindingAttribute(Name="Service1Soap", Namespace="http://clan35.learns.dotnet/")]
	public class HelloWorldWS : System.Web.Services.Protocols.SoapHttpClientProtocol 
	{
    
		public HelloWorldWS() 
		{
			this.Url = "http://localhost/wshelloworld/helloworld.asmx";
		}
    
    		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://clan35.learns.dotnet/HelloWorld", RequestNamespace="http://clan35.learns.dotnet/", ResponseNamespace="http://clan35.learns.dotnet/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public string HelloWorld() 
		{
			object[] results = this.Invoke("HelloWorld", new object[0]);
			return ((string)(results[0]));
		}
	}	// HelloWorldWS
}

[+35]6-shooter_X Skrevet - 01 Nov 2005 : 07:09:36
Hello world. Webservice..

Gem dette som c:\inetpub\wwwroot\wshelloworld\helloworld.asmx

Og prøv at skrive "http://localhost/wshelloworld/helloworld.asmx" i browseren


<% @WebService Language="c#" Class="HelloWorldWS" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://clan35.learns.dotnet/")]
public class HelloWorldWS : System.Web.Services.WebService
{
    public HelloWorldWS () 
    {
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
}
[+35]6-shooter_X Skrevet - 01 Nov 2005 : 06:20:31
Hvis du først installerer IIS efter dotnet, skal du køre

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

for at registrere aspx i IIS'en.
[+35]Lazy Skrevet - 01 Nov 2005 : 02:01:12
OK, med så langt bortset fra IIS. (Jaja, jeg ved det Men har hele tiden haft en apache kørende i stedet )

Skal der installeres noget ekstra for at IIS kan fortolke asp sider?
[+35]Terabyte Skrevet - 01 Nov 2005 : 00:46:48
quote:
Oprindeligt skrevet af [+35]6-shooter

Det er din installation der er noget galt med..
De' en Om'er



Så er jeg med igen



og med IIS'en da jeg først fik den til at virke
[+35]6-shooter_X Skrevet - 31 Oct 2005 : 23:18:23
[TERA] Har du sat noget specielt op i din dos-boks ? Compatibilitymode f.ex?
[+35]Klumpen[Wa] Skrevet - 31 Oct 2005 : 23:09:56
Som begynder til et sprog synes jeg altid Sams Teach Yourself *** in 21 Days bøger har været gode at få i hånden.

Så sådan en vil jeg da klart anbefale at købe hvis det er:

http://www.amazon.com/exec/obidos/tg/detail/-/0672320711/002-2458785-7281617?v=glance
[+35]6-shooter_X Skrevet - 31 Oct 2005 : 22:48:45
Vil du være med ?
[+35]KillerBee Skrevet - 31 Oct 2005 : 22:42:15
Hmpf! Og min kone kalder MIG nørd!
[+35]6-shooter_X Skrevet - 31 Oct 2005 : 21:54:04
Det er din installation der er noget galt med..
De' en Om'er
[+35]Terabyte Skrevet - 31 Oct 2005 : 20:26:24
quote:
Oprindeligt skrevet af [+35]6-shooter


Her er lige det første


using System;

namespace HelloWorldApp
{
	class HWConsole
	{
		static void Main()
		{
			Console.WriteLine("Hello world!!");
		}
	}
}


gem som hw.cs og kør "csc hw.cs" i et commandwindow.
Så har du dit første C# .Net console-program, hw.exe.

Det næste bliver et WindowsForms program MED EN KNAP. WOOOOHOOOO....


Lol - tænk at jeg var i stand til at gøre det forkert


[+35]Terabyte Skrevet - 31 Oct 2005 : 16:36:05
gudfader for noget vrøvl - jeg var nødt til at tage på arbejde og nu er jeg allerede sakket agterud
[+35]6-shooter_X Skrevet - 31 Oct 2005 : 11:15:02
MFC Versionen, dog uden eventhandler til knappen. Den er fundet på nettet, da jeg ikke selv har brugt MFC.


#include <afxwin.h>

class HelloApplication : public CWinApp
{
public:         
  virtual BOOL InitInstance();
};

HelloApplication HelloApp;

class HelloWindow : public CFrameWnd
{               
  CButton* m_pHelloButton;
public:         
  HelloWindow();
};


BOOL HelloApplication::InitInstance()
{               
  m_pMainWnd = new HelloWindow();              
  m_pMainWnd->ShowWindow(m_nCmdShow);           
  m_pMainWnd->UpdateWindow();           
  return TRUE;
}

HelloWindow::HelloWindow()
{               
  Create(NULL,                          
    "Hello World!",                             
    WS_OVERLAPPEDWINDOW|WS_HSCROLL,                                
    CRect(0,0,140,80));                
  m_pHelloButton = new CButton();
  m_pHelloButton->Create("Hello World!",WS_CHILD|WS_VISIBLE,CRect(20,20,120,40),this,1);
}

[+35]Klumpen[Wa] Skrevet - 31 Oct 2005 : 10:17:11
Nå for søren... jeg synes bare jeg har fået at vide at du var datamekaniker engang (og også derfor jeg bliver kaldt Lazy2?)

Vi har kun lige snuset til C# programmering, men generelt var jeg faktisk rimeligt imponeret og jeg ville nok, hvis jeg havde tænkt mig at programmere når jeg er færdig, vælge C#.

Lige nu må jeg dog nøjes med alm. C++ da vi sidder midt i svendeprøveprojekt som skal afleveres på fredag o_O
[+35]Lazy Skrevet - 31 Oct 2005 : 09:20:59
quote:
Oprindeligt skrevet af [+35]Klumpen[Wa]

Hva dælen Lazy... lærer data(mekanik/fag'erne) på øen ikke MFC programmering?
Hehe... Jeg er altså hverken datamekaniker eller "fag".
Bortset fra det, så er mit eneste reelle kendskab til WIN-GUI fra Borland C++. Deres OW-etellerandet bibliotek fik jeg aldrig sat mig ordentlig ind i, da jeg allerede dengang mente jeg ville have haft mere ud af at lære om MFC.
Mine afgangsprojekter var programmering af en proxy-server og en databasedrevet webmail-server. Begge dele som Linux daemons, så der havde jeg ikke meget brug for GUI
[+35]Klumpen[Wa] Skrevet - 31 Oct 2005 : 02:07:47
Hva dælen Lazy... lærer data(mekanik/fag'erne) på øen ikke MFC programmering?
[+35]Lazy Skrevet - 31 Oct 2005 : 02:00:12
quote:
Oprindeligt skrevet af [+35]6-shooter

Så lad da din indføring i .Net starte med lidt religion!

Hvordan ser din (winexe) Hello World, med knap, ud i C ?

STL er jo noget helt andet og i den retning tror jeg ikke du bliver skuffet.
Jeg tror jeg springer religionen over Jeg ejer ikke en eneste fil med en gui-applikation i C til windows. Jeg har noget C++ som er mildest talt kaoskode, hvilket er en af årsagerne til at jeg aldrig syntes særlig godt om MS SDK. (Mine evner på det tidspunkt var ikke til MFC.)
Med GNU C++ og Qt ville det være noget i stil med:
#include <qapplication.h>
#include <qlabel.h>

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   QLabel minLabel("Hello World!", 0);
   minLabel.setAlignment(Qt::AlignLeft);
   minLabel.setCaption("Hello World!");
   minLabel.resize(300, 240);
   a.setMainWidget(&minLabel);
   minLabel.show();
   return(a.exec());
}
Men det er så også snyd fordi det meste defaulter
Til gengæld er den kode du skrev jo nærmest selvforklarende. Mit problem bliver nok præcis det samme som java's "swing" ting. Simple ting kræver mange linier og det irriterer mig

Grunden til at jeg tænker STL er blot at jeg ikke aner en fis om windows GUI programmeríng og stadig betragter alt GUI som en containerklasse.

[+35]6-shooter_X Skrevet - 31 Oct 2005 : 00:57:51
Og en WebForms.




<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat=server>

	void Page_Load(object sender, EventArgs e)
    	{
		Button	btnExit = new Button();
		btnExit.Text = "Exit";
		btnExit.Click += delegate {Response.Redirect("http://www.clan35.dk");};

		Label 	lblHW	= new Label();
		lblHW.Text 	= "Hello World!!";

		HWForm.Controls.Add(lblHW);
		HWForm.Controls.Add(btnExit);
		Title = "Hello world !!";
	}

</script>
<html>
<head runat=server />
<body>
<form id=HWForm runat=server />
</body>
</html>

[+35]6-shooter_X Skrevet - 30 Oct 2005 : 23:57:25
Så lad da din indføring i .Net starte med lidt religion!

Hvordan ser din (winexe) Hello World, med knap, ud i C ?

STL er jo noget helt andet og i den retning tror jeg ikke du bliver skuffet.
Vi kan jo fægte lidt. Vis mig din, så viser jeg dig min :)
Så kommer der en rød tråd fra din gamle til din nye verden!!!
[+35]Lazy Skrevet - 30 Oct 2005 : 22:38:17
Hehe... Jeg savner allerede C og STL.

Det virker helt Java'sk og temmelig redundant at skulle sætte alting specifikt for en sk*de exitknap

Må vist hellere få downloadet...
mAx Skrevet - 30 Oct 2005 : 22:36:30
uhh ville gerne igang med at programmere igen når i diskuttere alt det det , tror bare at jeg har lånt min c++ bog ud (eller lagt den et sted jeg ikke kan huske)
[+35]6-shooter_X Skrevet - 30 Oct 2005 : 22:04:15
Her er det "minimale" WindowsForms (.Net term for et almindeligt windows) -program.

Og så skal jeg lige sige, at det her er IKKE som projekterne ser ud i Visual Studio. Det kan vi også godt diskutere, men jeg synes, at det er mere spændende, hvad der kan gøres gratis, "the notepad way", når det er i +35-regi.
Og så er der heller ingen "magi", som man tit oplever i IDE'er.

Gem som hw.cs , kør "csc hw.cs" . Voila.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace HelloWorldApp
{
	static class HelloWorld
	{

		[STAThread]
		static void Main()
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new HWForm());
		}
	} // HelloWorld

	public class HWForm : Form
	{
        	private Button 	btnExit;
	        private Label 	lblHW;

		public HWForm()
		{
			btnExit = new System.Windows.Forms.Button();
			btnExit.Location = new System.Drawing.Point(102, 83);
			btnExit.Size = new System.Drawing.Size(75, 23);
			btnExit.Text = "Exit";
			btnExit.Click += new System.EventHandler(btnExit_Click);

			lblHW		= new System.Windows.Forms.Label();
			lblHW.AutoSize 	= true;
			lblHW.Location 	= new System.Drawing.Point(99, 32);
			lblHW.Text 	= "Hello World!!";

			ClientSize = new System.Drawing.Size(284, 161);
			Controls.Add(this.lblHW);
			Controls.Add(this.btnExit);
			Text = "Hello world !!";
		}

		private void btnExit_Click(object sender, EventArgs e)
		{
			Application.Exit();
		}
        } // HWForm
}


Clan [+35] Forum © 2000-2002 Snitz Communications Go To Top Of Page
Tilpasset ældre læsere - vist på [:)] 0.16 sek. Snitz Forums 2000