|
Mike Marynowski wrote: It *was* slow, but it has been improved significantly in each release of Visual Studio. XAML is also expressive enough that I rarely use the editor directly anyway - I usually have it in split screen view and I type the XAML manually. Faster, more accurate, less code bloat. I'm a huge advocate of beautiful hand-written XAML. I always disabled the visual editor and the XAML code editor was still slow as dirt. I think you'll find most professionals do that, so it's just assumed.
Mike Marynowski wrote: Even when the editor was slower, I still never found it to be so bad that it become unusable. I have, on a large medical project. This was back in VS 2012 mind you, but still.
Mike Marynowski wrote: The kinds of UIs that you can easily build with XAML is nothing short of amazing. Well, I totally agree, but have you used any other UI technologies besides XAML? MS isn't exactly known for originality. There are a ton of things you can do in other platforms. It's simply bringing a web-style layout engine to the desktop is all.
Jeremy Falcon
|
|
|
|
|
Yes, I have. HTML5 development has gotten to a reasonably enjoyable state with a good framework, and my experience using it to build hybrid apps has been quite lovely. Bootstrap is what we generally use right now. Lots of experience with Winforms and Qt which are fine for "standard" desktop application layouts. Interface Builder with its constraint based system is terrible. Built lots of custom game interface engines back in the day.
What other technologies are you suggesting? I don't know of anything that comes even close to the expressibility, cleanliness and flexibility of XAML for modern UI development. HTML5 is kinda coming close in terms of how easy it is to customize but it is nowhere near as powerful or expressive as XAML for complex layouts.
|
|
|
|
|
Mike Marynowski wrote: What other technologies are you suggesting? Well in particular, CSS Level 3 and some pre-processors like SASS/LESS. You can't do good layouts in just HTML. I mean you can, but it's a joke and ugly and static. I'm a bit of a hardcore web developer, and I'd wager, like XAML, most people that knock CSS really don't know much about it.
I remember back in my time spent with XAML, it reminded me of CSS layouts over and over again.
Jeremy Falcon
|
|
|
|
|
When I say HTML I obviously mean HTML+CSS. Like I said, it is getting close to XAML. I way rather build a hybrid app in a web container than use any of the native mobile options. I will be thrilled when HTML gets proper shadow DOM. Understanding inheritance of styles is much simpler, much to the credit of how good the live inspection tools have become. Tweaking styles for a web app live is sooooo awesome and easy. Hell you can build half your app by never leaving Chrome now, which is pretty amazing.
XAML holds a special place in my heart though, largely in part because of the integration with .NET and C#. Everything I do in XAML is possible in HTML+CSS+JS but considerably more painful at the moment.
Have you tried TypeScript? I was playing with the 2.0 release the other day and I must say, it is pretty awesome. When HTML gets shadow DOM and fixes the few outstanding issues I have, I might jump ship entirely to HTML/CSS/TS.
|
|
|
|
|
Mike Marynowski wrote: When I say HTML I obviously mean HTML+CSS. I can't make that assumption... obviously. Kinda hard for me to gauge your level of expertise, with a post like "everything MS does is awesome, nom nom, <3 <3."
Mike Marynowski wrote: I way rather build a hybrid app in a web container than use any of the native mobile options. As a strong web dev, I'm the exact opposite, especially since there's no need for such a container nowadays. 10 years ago, I could understand that. Those days are gone though.
Mike Marynowski wrote: Everything I do in XAML is possible in HTML+CSS+JS but considerably more painful at the moment. Because you're better what what you have more experience in. I'd wager it's not more painful, but then again my experience over 20 years has been more pure web dev and just a 2 year stint in Silverlight. So, of course I'd lean that way.
Mike Marynowski wrote: Have you tried TypeScript? I was playing with the 2.0 release the other day and I must say, it is pretty awesome. Nope, but I'm keen to try it. Used Babel for ES6/2015 a couple times. Although with now Angular all aboard the TS train I'm ready to have another peak at it.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: with a post like "everything MS does is awesome, nom nom, <3 <3."
Well with a few exceptions, Silverlight being one of them, everything they put out *is* awesome lol
Jeremy Falcon wrote: there's no need for such a container nowadays
Yes there is - notifications, app store discovery, integration into the system (i.e. being able to call activities that open other apps), creating a keyboard, *easy* system integrated micro-payments, etc etc etc. I can go on and on here. Web apps on mobile can't do a lot of things native apps or hybrid apps can.
Jeremy Falcon wrote: Because you're better what what you have more experience in
Yes, of course, but that's not my point. I don't even mean that in terms of how quickly I can do it, more in terms of the "nicest" and "cleanest" implementation that meets all the requirements. Web stuff is great but common, for a very large class of applications native is much better. Our biggest project involves apps that talks to bingo machines through serial interfaces, output animations across 3 full HD TVs, do system level calls to the OS to arrange video outputs and such, has configurable detailed logging to a local log file (with Log4Net), writes live backup data to a USB stick so if the system goes down it's just a matter of unplugging the stick and plugging it into another computer and off you go again, etc.
The part of the system that staff use to take payments from people on the floor via iPods is a mobile web app, because that's where it made sense to use one. Can we do the rest with a node.js + website system? Yes, but it would be bloody mess and it would be significantly more complicated. And the performance of the animations would be crap.
My point is...HTML/JS apps are not a proper substitute for native development yet, and likely won't be for a while. I like the web, but it is unsuitable for the stuff I do. Hence the painful part.
|
|
|
|
|
Mike Marynowski wrote: The part of the system that staff use to take payments from people on the floor via iPods is a mobile web app, because that's where it made sense to use one. Can we do the rest with a node.js + website system? Yes, but it would be bloody mess and it would be significantly more complicated. And the performance of the animations would be crap. Oh, you're preaching to the choir on that one. As much as I like node, I don't drink the kool-aid thinking it does everything including make toast. But I am glad it exists.
Mike Marynowski wrote: My point is...HTML/JS apps are not a proper substitute for native development yet, and likely won't be for a while. I like the web, but it is unsuitable for the stuff I do. Hence the painful part. Well sure, but my point was in the context of the web.
Jeremy Falcon
|
|
|
|
|
Well of course in the context of the web a website will be better, haha. I don't disagree, and we have many websites and web apps as part of our projects where it makes sense.
If you need to go native though, XAML is really in a league of its own for building interfaces as of right now.
|
|
|
|
|
If I remember correctly I think VS2013 really brought some really nice speed improvements. I have yet to experience a bad slowdown in XAML editing in VS2015.
I do remember VS2012 getting a bit sluggish at times but then again I probably wouldn't have used XAML for a large medical application in 2012. Back then the only thing I used it for was full custom interfaces like touch screen kiosk apps and things of that sort. I would probably have just stuck to WinForms for a medical app.
Today that's definitely not the case though. XAML and the tooling has gotten so good and MVVM is amazing and indispensable at this point.
We actually don't do MVVM here, we have a whole framework we use internally to do what we call MVS, or Model View State, which is kind of a cross between MVC and MVVM. We're considering open sourcing and documenting it with tutorials and such but we are working on getting another surprise ready to release first But between XAML+MVS and the other project we will release first, we pump out apps 5 times faster than with anything else at the moment. I <3 XAML.
|
|
|
|
|
Gotcha. Whatever the case, I have no need for it anymore since Silverlight is dead and I do web dev, but that's good to know.
Jeremy Falcon
|
|
|
|
|
MVS? Surprise, surprise We actually developed a kind of what you called MVS system for our HTML/CSS/Javascript (hybrid) applications ...
|
|
|
|
|
Yeah I could see that, HTML/JS would definitely be a good candidate for doing something similar! It would fit perfectly with the templating and binding frameworks available and the structure of web projects.
|
|
|
|
|
Mike Marynowski wrote: XAML is also expressive enough that I rarely use the editor directly anyway What, you mean you can modify the top (editor) screen, I thought it was there for display only. Oh wait I have been known to click on an object and delete it, thai is the extent of editing done in the top screen.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Yes, definitely agreed. Sometimes I use the slider to change margins or the color wheel because it is nice to finely tweak the value over a smooth range. I also like the scaffolding for creating a copy of a template or style, but then I hand delete 90% of the bloat and just keep what I need.
Animations in Blend for Visual Studio is just about the only thing the editor is used extensively when we have an animation heavy component to the app. It's actually pretty fantastic in terms of how easy it is to make great animations but the markup it produces is god awful, so we tuck away animated stuff into its own controls and only edit it with Blend.
|
|
|
|
|
Jeremy Falcon wrote: I couldn't stand editing XAML. The editor was slooooooooooooooow. Did I mention slow?
OMG! Someone actually use the editor?!
|
|
|
|
|
Yes.
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: I couldn't stand editing XAML.
I've recently been writing one app natively on all platforms.
I wrote it as a winform. Then i converted it to Android. That was very easy.
Next, I decided to write it as a UWP Universal Windows Platform app. Pain. Agony. XAML.
Now, I'm writing it as an iPhone app.
Anyways, the other painful thing about the UWP XAML thing is that you literally "type your user interface" and all the editing takes up tons of space vertically on the screen. it's such a pain.
And slow.
|
|
|
|
|
Converting an app from Winforms would be a lot of work because MVVM/XAML is a completely different paradigm. It's only really suitable for a new development written ground up the way you have to write MVVM/XAML apps. It also has a huge learning curve, much like HTML/CSS - I hated it at first too, and it takes a long time before you get comfortable enough with it to write code that you can look at and say "ah, what a work of beauty"...but when you get there, it becomes indispensable and you never want to go back to procedural UI layout.
I have a fairly old box by today's standards and I have yet to experience slowness on VS2015. What are you using?? I also have resharper going and that takes up a whole lot of system resources on its own and still no problems.
I never understood developers that would hold out upgrading memory or to an SSD to be able to use more powerful tools. Whats $300 or $400 extra to save you hours and hours of building an app?
XAML tools used to be a bit slow but since VS2013 service pack something, I haven't had any such issues.
|
|
|
|
|
Jeremy Falcon wrote: Did I mention slow? No, but you forgot to mention 'dumb and buggy'. It makes a lot of assumptions about what you would use XAML for and quickly stops working when something is not as it expects.
It easily took the first place as my 'favorite' Mickeysoft bugware. Previously it was the ASP.Net webform editor, which at least never became completely useless.
The language is JavaScript. that of Mordor, which I will not utter here
This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.
"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."
If software development were a circus, we would all be the clowns.
|
|
|
|
|
I don't know what you mean by "it makes a lot of assumptions" - can you explain?
The editor used to be horribly buggy. That hasn't been the case for a very long time now though, perhaps it would be worth re-evaluating
A lot of what I said is also dependent on the kind of development you do. The apps we build now have DPI-independent full custom designs. Whatever a designer can design in Illustrator we need to be able to translate easily into an interface, and XAML makes it sooooo easy.
If you are building more standard apps then the learning curve might not be worth making the transition, but I will say that once you get over the learning curve you never want to use anything else again.
|
|
|
|
|
Been through the same thing, though it was a Mac, exploring iOS and then a Linux project for me.
|
|
|
|
|
Bugger mobile, I shy away from entering the web stack let alone the non MS mobile arena.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I switched from MFC/C++ and C# to iOS and never want to go back. This crappy resource editing and bloated XAML is pain in the ass. The class library from Apple are simple and they work. No fizzling around some messie bugs and annoying errors.
It is hard to start, but when know enough you write mean and clean code. And it works on all systems, no big and bloaty setups with errors.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
To each their own I guess. I don't think XAML is bloated if written properly, and I'm extremely anal about XAML being written cleanly. We write XAML by hand, not using the editor. Anytime XAML seems bloated we refactor or find a way to reduce the clutter and keep it clean. This is just one example:
[Code Index] | Getting Rid of Ugly TransformGroup Blocks in WPF[^]
Resources are great - they are like CSS styles for controls. If you use the editor then yeah it's a bad experience and you will get TONS of bloat. The editor should be there for only 3 things - scaffolding a template or a style for you that you then hand modify and place where you actually need, having a live view of the changes you are making in the XAML by hand, or playing with property values like margins or color live so you can tweak them just right by sliding your mouse on a slider or color wheel instead of typing, deleting, typing, deleting, etc.
Do you use IB or code to build your iOS interfaces? I'm assuming code, as most iOS devs quickly drop IB (us included) because of how bad it is.
You lose something special when you build interfaces in code instead of a declarative language with a live updating view. For mobile apps it can be argued that the interfaces are simple enough that it doesn't make much of a difference but I tend to disagree. I would also *strongly* disagree that hand written XAML is bloated compared to the code required to build up an interface.
I wrote interfaces with code 10 years ago and in my opinion it's a huge step backwards. HTML/CSS and XAML are a much better way of representing an interface.
|
|
|
|
|
We just did an evaluation of XCode 8 by updating one of our apps in the last few days and besides a few hiccups that we had to manually fix, it has been soooo much better so far...so a lot of what I said doesn't apply anymore. That was kind of odd timing with my post lol.
Interface builder has become way more usable now, I think I can say I even like it.
|
|
|
|
|