[C#] console en forms applicatie

Pagina: 1
Acties:

  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Hoi,

Ik heb een korte vraag, ik heb een applicatie in C# gemaakt die zowel via de console werkt als via de forms app.
Het 'probleem' waar ik tegenaan loop is het sturen van output middels de Console.Writeline.
Als je Het programma build als windows application en dan via de console wilt gebruiken de Console.Writeline de output niet naar de console schrijft, als ik hem build als console application dan komt er bij het starten via de grafiche manier ook een console box te voorschijn(dit is natuurlijk niet netjes).
Weet iemand waar je de eigenschap moet aanpassen die aangeeft waar de output heen moet van de WriteLine.

alvast bedankt.

[ Voor 4% gewijzigd door *Dutch-Force* op 07-12-2004 11:53 ]

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Wat doe je met die WriteLine ? Zijn dat debug of trace messages ofzo?

Wat je kan doen is eens kijken naar TraceListeners en gebruik maken van de Trace.WriteLine method oid.

https://fgheysels.github.io/


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 18-05 16:28
Wat wil je met die output doen? zie boven

[ Voor 22% gewijzigd door stp_4 op 07-12-2004 11:57 ]

stp - PSN ID: stp_4


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Dat zijn meldingen die procures geven, gaat om een database update programma, ik wil dus meldingen geven van hoever het programma is en evt foutmeldingen.
Als de windows mode gebruikt worden dan verschijnen er Messageboxes, maar als je remote via de console werkt dan wil je dat niet.

[ Voor 31% gewijzigd door *Dutch-Force* op 07-12-2004 11:59 ]

ComputerSpecs


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 19-05 07:31

Janoz

Moderator Devschuur®

!litemod

Waarschijnijk is console gewoon een outstream. Ikzelf werk vooral met java, en ik neem aan dat het het equivalent van System.out is. Waneer je binnen je programma gewoon altijd naar een willekeurige outstream schrijft kun je afhankelijk van de manier van opstarten wel kijken of deze stream naar de console, dev/null of een logbestand moet verwijzen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
ik heb even gekeken wat de .out,ToString() geeft en dat is het volgende System.IO.TextWriter+SyncTextWriter
Er bestaat ook een setOut, daar moet je idd een writer aan meegeven, maar wat is de naam van de console ?

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Zo:
code:
1
new TextWriter (System.Console.Out);


Oid, maar mocht ik jou zijn, zou ik eens kijken naar TraceListeners enzo...

https://fgheysels.github.io/


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
whoami schreef op dinsdag 07 december 2004 @ 12:28:
Zo:
code:
1
new TextWriter (System.Console.Out);


Oid, maar mocht ik jou zijn, zou ik eens kijken naar TraceListeners enzo...
Ik heb ook naar de Trace Listeners zitten te kijken maar daar moest je dus ook de Console.out aan meegeven en dat is nu juist degene die ik wilde bepalen.

Met
code:
1
new TextWriter (System.Console.Out);

maak ik toch een textwriter die dezelfde eigenschappen heeft als de Console.out?
De console.writeline werkt wel als je er een consoleapp van maakt maar ik kan het verschil niet vinden in de .out tussen de console app en de form app

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Ik denk dat er dan wat schort aan de architectuur van je applicatie.

Het stuk van je applicatie die je 'core functionaliteit' bevat, zou ergens in een DLL moeten zitten, en zou moeten kunnen werken onafhankelijk van z'n interface.

In je interface (Windows applicatie of Console applicatie), zou je dan een method ofzo moeten kunnen aanroepen van een class die zich in je 'core dll' bevindt, waaraan je meegeeft welk type 'TextWriter' er moet gebruikt worden.

Bv:
Console Applicatie:
code:
1
coreObject.SetTextWriter (new TextWriter(System.Console.Out));


In je project dat een Windows applicatie is, geef je dan een andere TextWriter oid mee.

https://fgheysels.github.io/


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Bedoel je 2 projecten aanmaken (ene console, andere forms)?
En deze dan baseren op de dll (heb nu 2 .cs files die de core functionaliteit bevatten(DLL heb ik nog niet zoveel kaas van gegeten))

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Ik zou gewoon een solution maken die volgende projecten bevat:

1) Class Library project: dit zal de DLL worden die de core functionaliteit van je applicatie bevat
2) Console Applicatie: deze applicatie gebruikt de DLL uit 1)
3) WinForms applicatie: deze applicatie gebruikt de DLL uit 1)

'Core functionaliteit' zal er dus niet meer te vinden zijn in je GUI code: je console of windows applicatie zal de classes gebruiken die je in je DLL hebt zitten en deze dus aanroepen.

https://fgheysels.github.io/


  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Hmm had ik nog niet aangedacht.(gaak effe verder naar kijken)

Effe alvast wat vraagjes die me zo te binnen schieten, mogen deze 2 dezelfde naam hebben voor de executable die gemaakt word1?
Maakt het programma dan zelf uit welke die moet gebruiken( console of forms)?

Zal effe toelichten hoe ik het nu doe:

Ben begonnen met form appl, daarna kwam opdrachtgever dat het ook remote via console moest kunne runnen, nu heb ik dus een aangepaste main gemaakt die kijkt of er parameters meegegeven worden (-u) staat voor unattended indien ie deze tegen komt dan weet ie dat het via de console gebruikt word.

[ Voor 7% gewijzigd door *Dutch-Force* op 07-12-2004 13:00 ]

ComputerSpecs


  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 17-05 21:04

dotcode

///\00/\\

dan maar je toch een meta app die de parameters uitleest en de console of forms app start...
Pagina: 1