[WinForms/WPF]

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 16:44
Hallo tweakers

Voor mijn afstudeerstage moet ik onderzoek doen naar mogelijkheden om de huidige software die het bedrijf aanbiedt als webapplicatie te presenteren. Hierbij moet gebruik worden gemaakt van Microsoft technieken (als in geen apache, maar Windows Server met IIS, SQL server etc.). De programma's die het bedrijf gemaakt heeft sluiten aan op een ERP pakket. Voorbeelden van programma's zijn een verhuur- en magazijnbeheer.

De huidige sofware is geschreven in C#.NET i.c.m. Windows Forms. De applicaties worden op de volgende manier gemaakt: Bij een nieuw project wordt het eigen gemaakte framework ingeladen dat de basis van de applicatie geeft. Deze kan meteen gerunt worden en geeft dan het hoofdvenster met de menustructuur die uit de database wordt geladen. In het framework zitten naast de basis van de applicatie dan ook communicatie met de database en een aantal andere standaard functies opgenomen. De Windows Form formulieren worden ingeladen in een Mdi parent in het hoofdscherm dat in het framework zit. Overigens worden in de software elementen van Infragistics en DevExpress gebruikt.

Voor het online beschikbaar maken van de applicatie heb ik onderzoek gedaan naar de opties. Hierbij is de eerste uiteraard ASP.NET, maar daaruit komen nog meer opties voort zoals: welke type en javascript (framework?). Daarnaast uiteraard nog Silverlight met ook weer een aantal opties. En als laatst komen nog XBAP en ClickOnce. Hierbij is vooral de laatste nogal twijfelachtig. ClickOnce is zeker geen webapplicatie, en bied eigenlijk weinig van de voordelen die een true webapplicatie biedt. (crossplatform/crossbrowser, geen verdere software eisen...) Het bedrijf heeft echter wel interesse in deze optie als tussenstap en voor demonstaties aan klanten. Het biedt tenslotte wel een mooie manier van versiebeheer (mijns inziens). Hetzelfde argument (tussenstap) geldt voor WPF. Het kan gebruikt worden om naar Silverlight over te stappen, omdat deze ook gebruik maakt van XAML. Ik probeer ze nog van deze gedachte af te halen (ik vind dat het beter is om in een keer over te stappen naar een echte webapplicatie met ASP.NET).

In het geval van ASP.NET, XBAP en Silverlight betekent het dat de huidige Windows Forms formulieren omgezet moeten worden naar een ASP.NET compatible markup taal of XAML (WPF). Hiervoor heb ik conversiemogelijkheden bekeken en tools op gezocht. Het gebruik van deze tools gaat uiteraard niet echt gebeuren, hoogstens om het proces te versnellen, maar ik wilde het mee nemen in mijn onderzoek.

In onderstaande (prachtige Word) tabel is te zien welke opties ik heb gevonden en hoe ik mij dit voorstel. Mijn vraag is nu: ben ik compleet? Ik snap dat ik niet alle syntaxtalen van ASP.NET heb, maar het is onmogelijk deze allemaal te bespreken en eigenlijk ook niet relevant.
Afbeeldingslocatie: http://erwinvd.nl/stuff/Tweakers/optiestabelthumb.jpg

Verder zijn natuurlijk alle tips, op- en aanmerkingen welkom!

EDIT: typo uit plaatje gehaald (NHALM > NHAML)

Acties:
  • 0 Henk 'm!

Anoniem: 220206

Kijk ook hier eens naar: http://www.visualwebgui.com/

Deze tool maakt het oa. mogelijk winforms apps eenvoudig om te zetten naar webapps.

Hoewel ik het zelf nooit gebruikt heb en me afvraag hoe dit werkt bij grotere/complexere winforms app.

Acties:
  • 0 Henk 'm!

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 16:44
Ik heb hem aan m'n lijstje toe gevoegd :) Ik kan het natuurlijk altijd proberen met een testje, zie dat ze een trial versie hebben.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 04-07 15:01
Anoniem: 220206 schreef op maandag 26 november 2012 @ 11:48:
Hoewel ik het zelf nooit gebruikt heb en me afvraag hoe dit werkt bij grotere/complexere winforms app.
Niet, waarschijnlijk.

Als je de beschrijving van het pakket leest is het namelijk gewoon zo dat de hele thick client architectuur van WinForms naar de server overgehengeld wordt en daar per gebruiker in een soort Frankenstein-versie van een ASP.NET session leeft. Opschalen naar grote applicaties of gebruikersgroepen is daarmee naar alle waarschijnlijkheid compleet af te schrijven; dat gaat nooit goed komen.


Enige goede manier om dit aan te pakken is de business logic los te koppelen van je thick UI en aan te gaan bieden via een nieuwe, voor het web geschreven UI. En als het dan echt een zware applicatie met rich interaction moet zijn, dan zit je waarschijnlijk naar een JavaScript framework à la ExtJS te kijken, ondersteund door een aantal ASP.NET Web API services.

Je gaat er in elk geval geen handig tooltje voor vinden.

[ Voor 25% gewijzigd door R4gnax op 26-11-2012 20:49 ]


Acties:
  • 0 Henk 'm!

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 16:44
R4gnax schreef op maandag 26 november 2012 @ 20:45:
[...]

Niet, waarschijnlijk.

Als je de beschrijving van het pakket leest is het namelijk gewoon zo dat de hele thick client architectuur van WinForms naar de server overgehengeld wordt en daar per gebruiker in een soort Frankenstein-versie van een ASP.NET session leeft. Opschalen naar grote applicaties of gebruikersgroepen is daarmee naar alle waarschijnlijkheid compleet af te schrijven; dat gaat nooit goed komen.
Waar lees je dat precies? Ik kan dat er nog niet helemaal uit halen. Wel heb ik al een testje gedaan met de assessment tool die ze gratis aanbieden. Nu zal het komen doordat dit het deel is dat hoofdzakelijk bestaat uit forms en applicatie specifieke code, maar heel hoopvol ziet dit er niet uit: http://www.erwinvd.nl/stu...-so-instant-cloudmove.jpg
Voor het framework gaf hij het volgende resultaat:
http://www.erwinvd.nl/stuff/Tweakers/framework.jpg
Enige goede manier om dit aan te pakken is de business logic los te koppelen van je thick UI en aan te gaan bieden via een nieuwe, voor het web geschreven UI. En als het dan echt een zware applicatie met rich interaction moet zijn, dan zit je waarschijnlijk naar een JavaScript framework à la ExtJS te kijken, ondersteund door een aantal ASP.NET Web API services.

Je gaat er in elk geval geen handig tooltje voor vinden.
Dit zal inderdaad het geval worden, maar ik moet natuurlijk goed onderzoek verichten en de opties goed presenteren. Daarna is het luisteren naar wat het bedrijf wilt. Als die ondanks mijn adviesen toch met iets anders willen gaan, zal ik daar naar moeten luisteren.

Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 19:28
Je kan Windows Forms embedden in WPF (met een WindowsFormsHost). Vervolgens kan je je WPF applicatie weer als XBAP beschikbaar stellen. Als je dan de databasecalls vervangt door een call naar bijv. een WCF service en goed beveiligt ben je klaar. :)
Let wel op welke rechten je XBAP moet hebben om goed te kunnen draaien.

Dit is wel een tijdelijke Frankenstein-oplossing, waarmee je tijd wint om uiteindelijk een échte web-applicatie te bouwen. Daarvoor kan je het beste kijken naar iets wat HTML/CSS/JS uitpoept, om ook op de lange termijn goede ondersteuning te verwachten. Plugins die in de browser draaien zoals XBAP, Silverlight en Flash worden op den duur allemaal niet meer ondersteund.

PS: "sluiten aan op een ERP pakket", is dat bij de klant, of kan dat ook op jullie server?

Ik zie nu dat WindowsFormsHost al in je tabel staat 8)7

[ Voor 3% gewijzigd door alwinuzz op 27-11-2012 13:12 ]


Acties:
  • 0 Henk 'm!

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02 21:38

TheNameless

Jazzballet is vet!

ClickOnce is geen framework ala WPF of silverlight.
Met ClickOnce kan je enkel je applicatie gemakkelijk verspreiden, installeren en laten updaten.
Wij gebruiken het om een digital signage applicatie (geschreven in WPF) te verspreiden en updaten.
Werkt prima!

XBAP zou ik niet aan beginnen, dan is een WPF + ClickOnce applicatie veel makkelijker. XBAP werkt zowiezo alleen op windows en waarom zou je het dan nog in een browser willen draaien (met allerlei beperkingen) waarbij je ook nog een service moet maken voor je database interactie. Kan met WPF ook allemaal en je hebt verder weinig beperkingen.

Silverlight != WPF trouwens. Silverlight is een subset van WPF.

Ducati: making mechanics out of riders since 1946


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 04-07 15:01
Erwin537 schreef op dinsdag 27 november 2012 @ 11:15:
Waar lees je dat precies? Ik kan dat er nog niet helemaal uit halen.
http://www.visualwebgui.c...WG/tabid/621/Default.aspx

Onderaan de pagina staat nog wat 'next page' navigatie om te volgen naar volgende pagina's. Als je tussen de regels door leest en al wat v/d ASP.NET stack en WinForms stack afweet, dan is het wel duidelijk wat er onder de kap zo ongeveer aan het gebeuren moet zijn...

Acties:
  • 0 Henk 'm!

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 16:44
Zojuist heb ik mijn opties gepresenteerd hier in het bedrijf. ClickOnce zag ik niet als echte webapp (weet niet of ik het nou ook al in dit topic had gezegd), maar wel als interessante techniek. Dit hebben ze dan ook mee genomen en willen ze verder naar kijken. Hiermee moet ik (gelukkig) verder met m'n afstuderen niet naar kijken.

XBAP is vrijwel buiten beschouwing gelaten, omdat het boven ClickOnce weinig voordelen biedt. Wel heb ik verteld dat WPF moderner is dan Windows Forms en hier willen ze ook verder naar kijken. Het bedrijf wil zich namelijk graag onderscheiden op het gebied van (gebruiksvriendelijke en grafische mooie) gebruikersinterfaces.

Silverlight hebben ze ook de rug toegekeert nadat ik mijn argumenten heb opgegeven.

ASP.NET wordt de toekomst. Nu komen hier nog de subkeuzes wat waarschijnlijk MVC, typescript en JQuery/EXTjs worden oid. Interface taal heb ik nog geen idee over. Het grote voordeel van Razor/NHAML boven html zie ik niet. Sowieso heb ik nog nooit echt iets gedaan met ASP.NET, dus daar kan ik nog weinig over zeggen.
alwinuzz schreef op dinsdag 27 november 2012 @ 13:09:
PS: "sluiten aan op een ERP pakket", is dat bij de klant, of kan dat ook op jullie server?
Dat is bij de klant, maar hoeft niet perse op de PC waar het om gaat geinstalleerd te zijn. Echter is bij de presentatie gezegd dat bij de applicaties die voor web beschikbaar moeten worden gemaakt deze koppeling niet van toepassing zal zijn. Het enige wat ze gemeen hebben is dus de database.
TheNameless schreef op dinsdag 27 november 2012 @ 13:55:
ClickOnce is geen framework ala WPF of silverlight.
Met ClickOnce kan je enkel je applicatie gemakkelijk verspreiden, installeren en laten updaten.
Wij gebruiken het om een digital signage applicatie (geschreven in WPF) te verspreiden en updaten.
Werkt prima!
Dat besef ik me inderdaad. Het was echter wel een interessante techniek die ik graag wilde meenemen.
XBAP zou ik niet aan beginnen, dan is een WPF + ClickOnce applicatie veel makkelijker. XBAP werkt zowiezo alleen op windows en waarom zou je het dan nog in een browser willen draaien (met allerlei beperkingen) waarbij je ook nog een service moet maken voor je database interactie. Kan met WPF ook allemaal en je hebt verder weinig beperkingen.
Dat klopt inderdaad. Daarom is het ook eigenlijk van de baan. De meerwaarde boven ClickOnce is gering.
Silverlight != WPF trouwens. Silverlight is een subset van WPF.
Klopt, maar de overstap van WPF -> XAML Silverlight is toch veel makkelijker? Dan moeten de juiste onderdelen gepakt worden en die overstap is in principe gemaakt.
R4gnax schreef op dinsdag 27 november 2012 @ 14:12:
[...]


http://www.visualwebgui.c...WG/tabid/621/Default.aspx

Onderaan de pagina staat nog wat 'next page' navigatie om te volgen naar volgende pagina's. Als je tussen de regels door leest en al wat v/d ASP.NET stack en WinForms stack afweet, dan is het wel duidelijk wat er onder de kap zo ongeveer aan het gebeuren moet zijn...
Ik weet helaas nog weinig van ASP.NET, maar zal het nog eens goed lezen en proberen te begrijpen. Met de tijd zal het komen. Conversie tools wil ik sowieso niet in het advies opnemen, omdat het gewoon niet werkt voor hele applicaties. Het kan natuurlijk wel meegenomen worden om het omzet proces te versnellen, maar daarvoor zal ik eerst moeten testen om te kijken wat het precies aan bagger output. Maar als het slechts is om het werk iets te verlichten, denk ik niet dat het het waard is om daar voor te betalen.

Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 19:28
Erwin537 schreef op dinsdag 27 november 2012 @ 15:15:
...

ASP.NET wordt de toekomst. Nu komen hier nog de subkeuzes wat waarschijnlijk MVC, typescript en JQuery/EXTjs worden oid. Interface taal heb ik nog geen idee over. Het grote voordeel van Razor/NHAML boven html zie ik niet. Sowieso heb ik nog nooit echt iets gedaan met ASP.NET, dus daar kan ik nog weinig over zeggen.

...
Is je opdracht nu klaar of ga je straks nog meer research doen over bijv. ASP.net?
Ik weet niet hoe lang je stage nog duurt?

Voor mijn gevoel zit je nu nog een beetje tussen klok en klepel in, je hebt bij ASP.net MVC namelijk een viewtaal als Razor of NHAML nodig* om HTML te produceren met je views (model View controller).

* ok als je moeilijk wilt doen kan het ook wel zonder :P

Acties:
  • 0 Henk 'm!

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 16:44
Mijn stage duurt tot half februari ongeveer, dus ik ben nog niet klaar :)

Ik ga nu verder in op ASP.NET. Hierbij zal ik nog moeten kiezen tussen typescript, dart of javascript en vervolgens hierbij nog een javascript framework. Daarnaast zal ik inderdaad nog een interface taal moeten kiezen als Razor en NHAML, hier zal het wat lastiger worden, omdat ik nog nooit met ASP.NET heb gewerkt. De keuze voor ASP.NET MVC kan ik al wel onderbouwen, dus dat is geen probleem.

Ik verwacht dat de keuze voor de interface taal eigenlijk ook weinig uit maakt. Ik neem aan dat dat meer persoonlijke voorkeur is dan dat er echt een duidelijke reden is om ergens voor te kiezen.

Komende tijd zal ik goed in ASP.NET duiken en wellicht plaats ik nog een vraag als het me allemaal even niet duidelijk is.

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
Erwin537 schreef op woensdag 28 november 2012 @ 20:04:
[...]
Ik verwacht dat de keuze voor de interface taal eigenlijk ook weinig uit maakt. Ik neem aan dat dat meer persoonlijke voorkeur is dan dat er echt een duidelijke reden is om ergens voor te kiezen.
[...]
Mja, vooral als je er nog niet mee bekend bent is de hoeveelheid aan kwaliteitsdocumentatie wel een belangrijke factor. Daarnaast is het ook belangrijk om mee te nemen hoe 'common' een bepaalde templating/markup taal is. Ik kan mij voorstellen dat Razor (of zelfs de good old Web Pages inline code) gebruikelijker is dan NHAML.
Pagina: 1