Migrating WinForms project: TypeScript vs Dart

464 views
Skip to first unread message

Ruud Poutsma

unread,
Feb 16, 2015, 4:25:50 PM2/16/15
to mi...@dartlang.org
We have several large (100K+) codebases currently written in C#.NET WinForms with several libraries. We'd like to transition at least some projects to html5. We'd like to do so gradually, by re-implementing WinForms controls in Web Components.

We experimented with various webbrowser controls, CefSharp, EO.WebBrowser, IE and others. We concluded we have enough and strong enough glue between a modern browser and .NET to continue our journey.

Because of the tight integration of TypeScript within the Microsoft webstack the "choice" to go for TypeScript is natural, if a choice at all. However, we recognize Dart has many compelling advantages over TypeScript and EcmaScript 6. We think we can leverage a significant enough productivity gain using Dart instead of TypeScript, ES5 or ES6.

However, we are pretty unsure about the tightness of Dart integration within the Microsoft devstack. Most importantly,we don't feel the Dart team supports this usecase resulting in the integration level Microsoft provides with TypeScript in Visual Studio. Tools, extensions, helpers all exist for Dart to work with Visual Studio/MVC, but have more friction to use opposed to TypeScript.

This makes for an important downside we cannot ignore.

We are looking for experiences with a comparable usecase, pitfalls, future Dart team plans and tools we might have missed.

Lex Berezhny

unread,
Feb 16, 2015, 4:34:02 PM2/16/15
to misc
It's not clear what kind of integration you are looking for. Are you trying to call Dart functions from C#/.Net?

Don Olmstead

unread,
Feb 16, 2015, 4:37:57 PM2/16/15
to mi...@dartlang.org
Guessing you're looking for something like this? https://github.com/DanTup/DartVS

On Mon, Feb 16, 2015 at 1:33 PM, Lex Berezhny <l...@damoti.com> wrote:
It's not clear what kind of integration you are looking for. Are you trying to call Dart functions from C#/.Net?

--
For other discussions, see https://groups.google.com/a/dartlang.org/
 
For HOWTO questions, visit http://stackoverflow.com/tags/dart
 
To file a bug report or feature request, go to http://www.dartbug.com/new

To unsubscribe from this group and stop receiving emails from it, send an email to misc+uns...@dartlang.org.

Greg Lusk

unread,
Feb 16, 2015, 9:11:57 PM2/16/15
to mi...@dartlang.org
If I understand your scenario correctly, you are looking for some sort of interop between your existing C# assemblies and browser code. Is that correct? Are you looking to implement business rules in the browser, or server-side? Are you also looking for first-hand input about use of Dart on large projects?


Hans - Jürgen Alps

unread,
Feb 17, 2015, 12:58:18 AM2/17/15
to mi...@dartlang.org

A scenario which definetly works is to implement webservices in .Net and to consume them on the client side with Dart. When implementing the webservices you should use the latest Microsoft libraries in order to return JSON and not xml.

--

Ruud Poutsma

unread,
Feb 17, 2015, 11:09:07 AM2/17/15
to mi...@dartlang.org
It is about the tooling. I need three clicks to create a new TypeScript project in VS2013. I can perform intelligent refactoring operations (move, extract interface, et cetera, beyond rename/remove unused variable). I have tight integration with other components (e.g. automatic setup of a build, sourcemap generation, minification, transpilation) without the need to install anything. It's out of the box. Microsoft has shown to aggressively improve integration where possible.

Dart has a syntax highlighter and errorlist viewer in Visual Studio, built as a personal effort. This is in stark contrast to what Microsoft offers with TypeScript.

Lex Berezhny

unread,
Feb 17, 2015, 11:44:34 AM2/17/15
to misc
You keep using the word "integration" but none of the features you have listed have anything to do with integration. Integration is when you take different programming languages, frameworks, etc, and try to get them to work together such as cross language interop, bindings, adapters, etc.

If you are asking whether Dart will be first class citizen in Microsoft ecosystem the answer is definitely no. Unless a sudden massive open source community gets behind a Visual Studio plugin for Dart or a company decides they can make money from a Dart VS plugin. I don't think either of those will happen in the time frame you'll need.

IntelliJ and Dart Editor are going to be your best bet for first class Dart IDEs.

Dart Editor will do everything you listed out of the box, just as you requested.

I wouldn't let having to use a different IDE other than VS impede your adoption. At the end of the day they are all about the same, being able to switch between them is a good long term developer skill to have. After all, you're already peeking your head outside of MS ecosystem to adopt a non-MS approved language.

 - lex

Justin Fagnani

unread,
Feb 17, 2015, 11:45:49 AM2/17/15
to General Dart Discussion
Everything works out of the box with the Dart Editor as well. Refactoring, dart2js compilation, etc. I've never used Visual Studio, but don't think it should be a big surprise that Microsoft has created tighter integrations there.

In the near future the Dart Analysis server should be able to provide better refactoring and build support to a wider variety of editors.

Hans - Jürgen Alps

unread,
Feb 17, 2015, 12:13:36 PM2/17/15
to mi...@dartlang.org
Yes, indeed the tool integration of VS is excellent, but you have to decide yourself what is more important to you. As you originally wrote you recognized that Dart has many compelling advantages over TypeScript. Even if VS supports quite comfortable migrition features, in the end you have to understand and maintain all the generated code.

But if you decide to use Dart together with Microsoft tools you will probably have to use 2 IDEs. This might not be a disadvantage depending on the skills in your team. So some people could implement the client side using Dart and others could implement the server part using .Net. 

Don Olmstead

unread,
Feb 17, 2015, 2:37:18 PM2/17/15
to mi...@dartlang.org
As a long time Visual Studio user I would suggest giving WebStorm a spin. The IntelliJ stuff is as close as you're going to get to VS. Use the darcula theme and you're pretty good to go. Its certainly more appealing than the Dart Editor in terms of functionality.

Ruud Poutsma

unread,
Feb 18, 2015, 3:00:13 AM2/18/15
to mi...@dartlang.org
I have quite some experience with DartEditor and some with JetBrains WebStorm. I like both, they both have their unique characteristics. And I wholeheartedly agree with learning more IDE's making a developer better.

I certainly have no problem using more IDE's and tools altogether. In fact, I have done so in projects and I admire the refreshing new workflow of it.

However, not using VisualStudio won't fly in the team(s) currently accustomed with the .NET stack. Sure, some devvers might like it and go with it, but many more will have a large frown on their faces. And I can't blame them. When you're used to VisualStudio and the API's/toolchains around it DartEditor certainly can feel clumsy and cumbersome. Surely this is less true for WebStorm. But why use a "subpar" (from the .NET dev's perspective) IDE with a good enough language over VisualStudio? I'm going to have a hard time convincing those devs to use Dart with it's toolchain.

Greg Lowe

unread,
Feb 18, 2015, 3:20:00 AM2/18/15
to mi...@dartlang.org
The Dart SDK comes with top notch dart services for code analysis, refactoring, and creating project scafolding.

Perhaps you could pitch in and help Danny with his project to integrate these services with VS. It sounds like the integration of the new analysis server is pretty close to done. Another few sets of eyeballs could certainly help.

tomaszkubacki

unread,
Feb 23, 2015, 2:19:14 PM2/23/15
to


On Tuesday, February 17, 2015 at 5:45:49 PM UTC+1, Justin Fagnani wrote:
 
I've never used Visual Studio, but don't think it should be a big surprise that Microsoft has created tighter integrations there.

I'm former .NET dev and I think DartEditor devs should really really try out VS debugging experience (with some experienced .NET dev guidance) 
eg. in VS/C# hovering over filed2 in myvar.field.field2 you can instantly see field2 value (and pin it's editor), whereas In DartEditor (as of today) sometimes even function local vars do not display it's value and when it does expression window is hard to resize.

Dont' get me wrong - I don't want to sound negative here and I'm really grateful to the Dart Team that they save me from JS.... but at the moment (compared to VS) DartEditor offers much worse dev experience.



Bob Nystrom

unread,
Feb 23, 2015, 3:46:01 PM2/23/15
to General Dart Discussion

On Mon, Feb 23, 2015 at 11:19 AM, tomaszkubacki <tomasz....@gmail.com> wrote:
Dont' get me wrong - I don't want to sound negative here and I'm really grateful to the Dart Team that they save me from JS.... but at the mement (compared to VS) DartEditor offers much worse dev experience.

Have you tried IntelliJ (or WebStorm, or one of the other flavors of IDE from JetBrains) with the Dart plug-in?

I found it to be better than the Editor in almost every respect. I'm not a heavy debugger user, but I found it more enjoyable than the Editor's debugger.

Cheers!

- bob


tomaszkubacki

unread,
Feb 23, 2015, 5:53:37 PM2/23/15
to mi...@dartlang.org
I tried some early versions almost half a year ago (had some Polymer/Dart project issues then). 
Will have to try it out again. 

We use IntelliJ heavily for our Dart (client) + Java (server) projects now and I can confirm Jetbrains tooling is plain awesome.

Now saying all that, I still think DartEditor needs more love to attract new devs - making Dart community bigger and stronger. 

Jan Mostert

unread,
Feb 24, 2015, 3:06:41 AM2/24/15
to mi...@dartlang.org

Another happy IntelliJ user, use IntelliJ for Java, Dart, plain HTML, Javascript, Python, PHP and GWT. If I have to compare it with Netbeans and Eclipse, it's miles ahead of them in almost every aspect.
I think IntelliJ supports .net as well, so if you're looking for one IDE to rule them all, IntelliJ is probably your best bet.


Reply all
Reply to author
Forward
0 new messages