상세 컨텐츠

본문 제목

Xamarin Studio Color Theme Not Playing Well With Vs For Mac

카테고리 없음

by thumbwacahti1975 2020. 3. 13. 19:28

본문

When browsing on StackOverflow today, I came across a that was asking how to set an alternate row color on a ListView. Of course, multiple solutions are available. But I thought I would implement it with a DataTemplateSelector. In this post, I will do a quick write-up of the details. The code for this post is found on my GitHub: DataTemplateSelector With a DataTemplateSelector, you can add logic to what template is to be used based on conditions that you determine. We will see what this looks like in code a little bit later on. You simply define a couple of templates, create a class that inherits from the DataTemplateSelector and then override the abstract method in there.

In this method, you can write whatever logic is needed to determine which template should be selected. Then, simply assign the DataTemplateSelector to your ListView, and it will show you different cells based on your logic. This can be used to mimic a Facebook or Twitter timeline for instance where you want to view some different types of content in one list. All the details can be seen in the documentation, which is found here: Implementing alternate row color Let me show you how to use the DataTemplateSelector to implement an alternate row color mechanism in the ListView. Implement the DataTemplateSelector Let’s start with defining the DataTemplateSelector. You can see it underneath. Notice how it has two properties that take a DataTemplate, these can be dynamically assigned to our selector.

Then in the OnSelectTemplate, we write the logic to select which template the ListView has to show for the incoming item. We get two input parameters:. item: holds the object that is in the cell that we render;. container: the container that holds our items, in our case the ListView To determine if it’s odd or even, we take a look at the item source of the ListView and determine what the index of our item is. By calculating the modulo we return the even or uneven template.

As mentioned in the comments, there is room for improvement here, but this gets across the general idea. Define the templates and use the DataTemplateSelector In my XAML page, which you can see underneath, I can now define my templates in the ResourceDictionary. Of course, this could also live in the App.xaml or anywhere else you might have a shared resource dictionary. Note that you need to give them a key to refer to. The templates are nothing else than how you would normally define your ItemTemplate on the ListView directly. To give the cells a background color I use a Grid and on top of that put a Label which binds to the items in the attached source. In that same ResourceDictionary, I also define my DataTemplateSelector.

Again, this could live in a more reusable place and also give this one a key. In the EventTemplate and UnevenTemplate properties, we define the templates above the DataTemplateSelector. We do this by referring to it with the StaticResource keyword and the specified key for each template. Finally, on the ListView set the ItemTemplate attribute to our defined resource.

Now, run the app, and the result is similar to what you see underneath. Alternate row color in a Xamarin.Forms ListView Wrapping up And basically, that is all there is to it. You can also choose to go another route and maybe add a property to a view model object that you might have and arrange for the color that way. Or you could even create your own ListView inheritance and determine the alternate row color there. I did it this way because it gives you some more flexibility to changes other properties within your templates as well, it is highly customizable this way.

The code for this can be found here.

I've said this before and I'm sure others have noticed. Microsoft's focus is 'developers developers developers' whether it's for Visual Studio, or Azure Cloud, if you want software built for your platform you should cater to developers. I also said if I were JetBrains I'd worry about Microsoft's new agenda, they're going to have to take on Microsoft's new route. If Visual Studio itself (not Code) becomes cross-platform in the future that would be a huge blow for IntelliJ and other IDE's that JetBrains makes, maybe not at first but eventually. From my own experience Python Tools for Visual Studio and PyCharm are two of the best IDE's I've ever had the pleasure of using for Python, if that level of detail went into other IDE's that would be fantastic. Not to down other work others have done. Incidentally, JetBrains is starting out with Project Rider (a C# IDE).

I've been working professionally with Xamarin for the past month, honestly I'm shocked how half-baked Xamarin Studio is, both in terms of stability and features. (Since we develop for iOS, we use Macs and VS is not an option). Of course now that Microsoft has stepped in all the way, things may turn around, but my feeling is that the best window of opportunity for JetBrains would be to provide compelling Xamarin tooling on non-Windows platforms. That's the weak spot of their mammoth competitor as far as C# goes. JetBrains need to get better -far better- at providing support.

In fact, I think they need to have full-time, US-based, knowledgeable support. I've been using their tools for years. We own a few full-product-line subscriptions yet every single time we have to ask for support I know it will be a disappointing experience. We don't do it that frequently, maybe two to four times a year. And, when we do, you can be the problem was well researched and we simply ran into a wall. Between the time it takes for them to get back to you and some of the answers that come back, well, it's less than ideal.

This is harsh, but sometimes I think 'you might as well have asked me to re-install Windows to fix the problem'. What ends-up happening is that we will generally google the heck out of the problem, post it on SO and experiment and sometimes figure it out. In other cases you just give up and live with the issues. On the developer side MS has far better support and the community of developers using their tools is much larger, which means you have a higher probability of finding one or more answers to your problem. Love JetBrains tools. I just wish they'd take support seriously. :) The idea is that everybody works on Android and iOS alike, no specialization on the team.

And the UI itself (Xamarin.Forms) takes the bulk of our development time, we're running into so many quirks, and the cross-platform abstraction is very leaky unfortunately. So your recommendation may be good, but I don't think it would pan out in our particular scenario.

Especially since the team consists of people with no prior exposure to Xamarin (C#/MVVM devs + me, an Android dev with some half-forgotten familiarity with C#), so we've been learning on the job a lot. Yea, I agree that the IntelliJ IDEA and VS (not code) are the two best IDEs out there. The three major factors I would rank the IDEA over VS. Extensibility, its more likely to support X language 2.

Crossplatform, it actually runs on my platform 3. Its UI doesn't change drastically every few years. This is such an underrated thing IMO. Neither VS or IDEA are pretty IDEs, they both are actually butt ugly. They don't need to be. But VS goes thru so many visual changes and reorganizations, its the same reason why I don't use Office.

I'm not sure many ppl view this as a bad thing however. I often find MS fans loving to brag about how 'modern' their software always looks, even if it still looks just as shitty as the old one lol. And now with the one you excluded (VS Code), we are seeing them making a serious move on your two big advantages of IDEA over VS. They have apparently built a lot of the 'big' VS in C#, and they have apparently architected VS Code with a C# runtime on top of Electron to make it easier to port big pieces of VS into VS Code.

Today they announced a preview of their upcoming C/C extension and they say their Python tools for VS are coming to VS Code this year. And VS Code 'runs on my platform(s)'. The more developers they convert to VS Code, which is a lot deeper than just an editor for C# and Typescript, the more influence they will have on development patterns on all platforms.

This seems like a bigger push than just 'make Windows the best platform for developing for all platforms'. They're attempting to get devs who continue working on Mac and Linux to switch to their dev tools.

I've used both, but I'm forced to use VS at work. I think that its changes are for the better. It's definitely a strength.

There are also very cool tools for source control; code reviews, continuous integration, bug tracking. In addition, you can see a reference counter above your classes that offer a quick jump to where your class is being referenced from. It is majorly helpful. The down side is when Visual Studio breaks.

With

Sometimes, it caches files, causing strange functionality. There is this thing called MsBuild that can break your package management. It defaults to an auto-merge, which is the worst possible thing to do to your team mates.

I don't find VS ugly at all, but I guess beauty is in the eye of the beholder. I don't understand this hostility. Some change in design is OK. Nobody knows the future so when major new features get introduced or excised, some reorganization makes sense. The 'What would you like to do?' In Microsoft office is a simple little textbox that adds a lot of value for casual users I'd say enough to warrant them paying $5 a month for an Office subscription. The ribbon makes it seem easy to surface features that would otherwise be hidden deep in menus and sub menus.

Of course, UI design is difficult just as doing any work for consumption by others is difficult especially when there is no complete spec. I am not a UI designer but even I can make a UI that I will think is good enough. However, making a UI for others is tough.

Maybe it is just my luck but project managers or owners have always been hesitant to support UI changes. Maybe I've just been lucky to have good managers but I can't recall a single time I've had to make a UI change that wasn't driven by what I thought was a valid business need. Also maybe why I'm not employed now:P. In my opinion eclipse is still a lot better than VS.

It is smaller, faster and provides more features. For C visual studio is not much better than smart editor. It cannot even find all symbol references (it searches just for text). I also do not like licensing (free version works 30 days and than requires registration with a lot of info about you). I remember that C# version had totally different project settings window as if created by someone else than the rest of VS.

But I haven't used it for some time so maybe it is already fixed. Microsoft's focus is profit, as it is for every corporation. If someone screams developers, developers it doesn't mean much.

I can remember several instances where developers were nicely screwed by policy and strategy changes, products languages and tools got canceled. I find that the best strategy for someone that doesn't want to depend on Microsoft's moods is to not use their tools, or at least stick to the ones that have a long history and won't be messed up by strategy changes - that doesn't include C# or.NET. Well, whose fault is it that all things have.net in their names? I meant the.net frameworks in my original comment (even though the runtime environment changed a lot too, causing pain for deployment - read some old Paint.net blogs to find out more). My point was that it doesn't matter if c# or.net continue to exist or not, all it matters for me is whether one can count on one's skills being still valuable.

My Visual C, WinAPI (bit WinRT is replacing it) skills are still fine, my C# &.net framework that I learned back in 2006 are nearly useless, because a lot of stuff changed. Why do companies expect developers to always gobble up whatever they throw over the wall and say 'thank you sir, may I have more sir?' , as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles? More importantly, why do devs like investing in such ephemeral knowledge? What about community-driven languages that are rapidly evolving? In that case, would you say that the community expects developers to always gobble up whatever is thrown over the wall? (See: web frontend development) 'as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?'

There are a few areas of computing that are fairly stable, if stability of knowledge is your priority, you should seek one of those out. But in many other areas of computing, our discipline is young and rapidly evolving. Some of that evolution is being driven by a corporate need to sell the next version. But plenty is driven by the rapid evolution in languages and paradigms. And why is that? Because we all know that programming can still be (much) easier, more reliable, more predictable, cheaper, and more fun.

This is why many devs, myself included, like investing in 'ephemeral' knowledge. Honestly, I understand that the decay of hard-earned skills is distressing for many people. Not all fields have this characteristic.

But in our field, it just comes with the territory. The web front-end is shooting itself in the foot in a spectacular way and is a pathological example of software entropy.:) Personally I am seeking thay out - the stuff I work on has existed since before I was born and is evolving in quite a rational manner. I don't mind at all when a language is evolving, that's indeed to be expected and manageable, because one can leverage existing knowledge and augment it. But a lot of change is either driven by corporate interests as you mentioned or by fashion and is disruptive, as in replace X with Y.

And it's not clear how Y is more robust or faster, usually it's a mixed bag of pluses and minuses. Visual studio community is free if your product is open source. Q: Who can use Visual Studio Community? A: Here’s how individual developers can use Visual Studio Community: Any individual developer can use Visual Studio Community to create their own free or paid apps.

Here’s how Visual Studio Community can be used in organizations: An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects. For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with 250 PCs or $1MM in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above. If you would prefer 'native UI', then you would hate Visual Studio as well. Visual Studio 6 (1998) was the last one which used Win32 API for the UI. Visual Studio.net (aka 2002) already had this non-standard UI controls. Even Eclipse is more 'native UI' than Visual Studio, as Eclipse UI is rendered by Win32API and uses common controls.

VS uses WPF and they switched to an non-native-look skin starting with Visual Studio 2013. Even Office uses non-native UI controls since the very beginning of Office programs around 1990. You can see this if you open Word 6 in Win95 (or later), the controls and even child-window theme looks like Win3.1.

Office 97 had a very visible non-standard window theme with the application title in italic font (no other Win95 app looks like that). The menu bar of Office 1997 and later looks non-standard as well.

Office 2007 and later draw a custom drawn ribbon area over the Win32 menu. With COM you can integrate a Word/Excel/etc document area in your sample Win32 application and you can watch how the traditional nativ menu bar is overdrawn by a ribbon area if you click inside the document area. but I'm willing to put up with lesser IDEs if it means I don't have to use Windows.

Xamarin Studio Color Theme Not Playing Well With Vs For Mac

Check out the recent news - Microsoft is making Windows a lot more attractive to developers even those with Linux background. I spent the last 12 months doing C with Clang on Linux and porting that to windows was a lot less painful than I though it would be, even Visual C required maybe a day of work to get working - the biggest issue being Nuget and their Angle Packages are only available for sandboxed Windows apps - it took two hours to configure projects and fix stuff that made VC choke. This was a template using C14 project btw. So I'm impressed. And they now support using Clang as a front-end to VS code generator backend - no MinGW or Cygwin. Sadly the compiler crashed when I tried that and I still haven't gotten around to sending them the bug with repro - need to try with Update 2 first. And on top of all this they just announced they will implement linux kernel interfaces in windows and add support for running ELF binaries - and they will port apt-get with cannonical - basically you can get Ubuntu packages to run natively on windows kernel - without recompiling or nothing.

Huge props to Microsoft! St3v3r mentioned two valid points.

On top of that I will add 'It's propietary'. Because it is. It's a security risk, it means I have to buy it and I have to manage every license I buy. No need for the Stallman pasta here to express clear reasons why it is unacceptable for me and many others. Other reasons: - Bloated by default.

Comes with many things I do not need, and some I outright despise. Resource hungry. It's gotten much, much better with the last few versions, but I can take my Linux set-up to a lowly Chromebook, a discardable netbook or a cheap SoC like the RPi and barely notice a difference for most of what I do. I cannot do that with Windows.

I could switch to OS X or BSD tomorrow and barely notice the difference for most of my computing. Not on Windows. Carries a particular culture of everything having to be done on the GUI.

And what a bad GUI it is. Security wise it's terrible, you can't simply brush off the threat of malware as I do on Linux. No first class package management. The App Store is a joke. It is a completely different system from what I run or would run on my servers anyway. I could go on but I think it's enough to justify why Windows is not a good option for me (me, as in, me, not someone who's really happy now with Windows).

And what a bad GUI it is. IMHO every GUI (Win, Mac, Gnome, KDE etc.) is bad compared to any decent CLI, if you are trying to complete non-trivial tasks.

The real problem is, on Windows you don't have a simple way to switch from doing things in the GUI to doing them on command line. You can, but it's sort of second-class citizen. you can't simply brush off the threat of malware as I do on Linux Uhm, as a former Linux-only user (for about 2 years, circa 2011-2012) I would advise you not to brush it off completely. No, but people wanting a stable no-fuss desktop with everything (from laptop sleep to device drivers) working, access to proprietary software and all kinds of 3rd party drivers available, will.

I use OS X mostly because of the UNIX underpinnings. I could not care less for Linux of the desktop, despite having used it since 1997 (and having a history with UNIX going back to Sun OS and HP-UX). If Windows gets good enough with its basic unix userland support, and has a decent shell, I'll be very tempted to try it.

After all, any actual deployment etc, I do on Linux servers and VMs (vagrant etc) - no reason to pollute one's base desktop system with development libs and setups. and they don't require you to run proprietary software.

Only I specifically asked the inverse: to be able to run all the proprietary software I want. Besides, that's always the case - 'a recent Linux distro' is always supposed to fix all of these problems, I've been hearing that (and trying in vain) ever since 2000 or so. And I use Linux on the server side just fine (and actually have several desktop Linux installations too, since 1997 and RedHat 5.3 IIRC, just not as my basic everyday work/fun desktop, because they're dreadful still). It's proprietary. Which doesn't mean much - or even it's a plus for some. It does mean a lot, you just don't accept that it does. And yes, some people are masochists.

That's their decision, but we should reward people who force people to be masochists. And Microsoft spies on its users. Well, we're spied on any network use we do anyway. Privacy isn't binary. Just because it's possible to penetrate walls with xrays doesn't suddenly mean that you don't close the curtains in your house when you're naked.

I don't run a PC with low ram nowdays and I've had the exact opposite problem - about 6 months ago after a random Fedora update I started noticing my system would start swapping after using it for a long time (6+ hours). I tried to diagnose memory usage but every tool I used didn't sum up used memory to the memory used by programs - and it wasn't reserved vs used or whatever - the system was visibly swapping on a machine with 8 GB ram and 4GB memory used by running processes. I would just restart the machine after 8 hours but I've never had such issues with Windows (at least past XP, Win9x was basically restart after everything). I have also found that desktop Linux has stopped being a reasonable solution to 'bloat'.

I don't concern myself too much with bloat, as my machines are all pretty big (8GB laptop, 16GB desktop), but even with 8GB I can occasional get myself into a swapping situation. Firefox (I use the multiprocess developer version) and Thunderbird are memory hogs with an impressive appetite, so if I also start up a large-ish editor (like Atom or VSCode) and Inkscape or a video editor, I can end up with real memory problems. I haven't actually dug in to see where all the memory is going precisely, but my email/web workflow (Firefox+Thunderbird) has been the same for about ten years now, so it's interesting that it continues to bump up against memory limits no matter how much memory I have. But, Windows on the same system has similar memory issues when working on the same tasks; so it is not immune, but I don't think it is notably worse than Linux. I desperately hope you know how the Windows memory manager works before you say it 'uses half your RAM'. Windows is very aggressive about caching and (especially) precaching- if you're not using a memory readout tool that's been updated since Windows Vista changed things around, it's probably misleading you into thinking Windows' precache is actual 'in-use' memory. (If you're looking at Microsoft's Task Manager, make sure you're seeing the amount of memory in 'available', that's what counts.

'Free' is kind of a useless measure in Vista+.). Aggregation does not necessarily imply improvement. Architecturally, it's quite worse than just putting lipstick on a pig - they're bolting a racehorse on top of their pig. If you look at things just right and ignore the pig, you can pretend you're galloping around on an able horse.

But, inevitably, both you and the horse will have to deal with the fact that there's a pig bolted to the undercarriage. Linux doesn't need to be put inside another OS to be any more relevant or useful. I think, if it could talk, Linux would tell Windows: 'Sit down - I got this.' I'm leading a small team in building an ionic app right now.

The edge that cordova/phonegap/ionic will retain is the HTML and CSS part. As well as, at least for a little while, a more robust plugin ecosystem. Though that second one will change VERY rapidly. The other developers on my team are very much frontend & CSS types. I would be too much of a bottleneck if I were the only developer able to write the code for the app. If xamarin were free when I started, I may have given it more time in evaluation, but at the end of the day, I think that the choice would have remained ionic. Even react-native isn't ready yet if you're a windows based shop.

Playing

But maybe that's come along in the last couple months too. One database trick I used was to pre-select queries in the background and cache the results. It creates some code overhead for updating/inserting that has to keep the cache in sync. However, it simplified the logic in the rest of the code because I didn't need a promise for a select, I just read the cached object. That allows me to outsource the controllers for screens to developers who don't have to work with promise overload. They access my wrapper service for the content using synchronized code. My database is also very simple.

If you have a complicated schema with lots of joins, it'll be tough to cache things and keep it in sync with the db. Feel free to email me, if you want more details on this concept. I wonder if today though, with the licenses costing nothing, if they still would have done IL2CPP. I think there are benefits of it especially on iOS where they need to be sure there aren't future cases where development is blocked.

But it was a massive undertaking and almost made Unity unusable/unstable for a good portion of 2015. They appear to have weathered the storm even though they had to recreate AOT compilation in C (which spawns massive amounts of files).

Unity was going to go C back in the day when Flash/Non-AOT code was being blocked in iOS 3.3.1. 1 I actually wish pure C was an option for Unity. Being C at build allows Unity to control it's destiny a little more and I am sure the 3.3.1 thing with Apple influenced that. - Having an open source alternative like this will be a blow to Phonegap's/Apache Cordova's use for new apps. Do you think Zuckerberg is now shaking in his boots thinking Facebook will have to pull out of React Native? - Let's not forget Microsoft now owns RoboVM.

I wonder what this event implies for it. Thank you for noting this. It is potentially interesting to Clojurians since Clojure targets the JVM (would be cool if Clojure could be used for cross platform native app development with RoboVM, as an alternative to a convoluted mess of trying to use ClojureScript with React Native).NET proper has been OSS for a year and a half now (in the form of.NET Core), and.NET Micro Framework, which was specifically created to target resource-constrained devices, has been available under Apache 2.0 since 2009.

Since parts of Mono have been available under MIT all along, even if Unity had some reason to favor Mono over the others, then they could have replaced the GPL/LGPL bits on their own. It's likely that Unity hasn't done any of these things because they need support. This might help, but I'd be unsurprised if the Unity situation stayed the same as it has been for the last few years. No, LGPL doesn't work like this.

It's well possible to statically link LGPL library and non-free proprietary code. You just have to provide end-users a way relink with their own builds of said LGPL library (i.e.

Give them an.a file with all your proprietary bits, and, if you're nice, a linker invocation command). Yes, this is some significant hassle to set up two-step linking (unless you don't really care about not revealing the internal structure - if you don't, you can just throw a bunch of.objs), but not a complete game-stopper. Here what FSF says about this: If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application So, I think it's probably Apple ToS. I forgot about those. 'The answer is Azure. While Microsoft wants you to run Windows, they care even more that you're running in their cloud.' The lock in here is a very hard to resist value proposition.

I started using Azure because they gave hundreds of dollars a month for free (for I think 3 years). I then started to use their services because it's just simpler. Core made that decision even easier for me. I originally started using Core because my thinking was 'if i'm on linux, I can always move to AWS, linux is pretty competitive everywhere', then I needed a solution that had a market place offer (which is not free) or an azure service offer (which is free). I decided to choose the azure solution, but I designed my software with an interface so in theory i could replace the implementation if I ever needed to move to AWS. However, i'm now starting to realize that while I've always tried to choose solutions so I can easily move, it's becoming increasingly more difficult.

In 3 years I may have the capability to move, but i'm now becoming aware that it might not be practical to move. Azure is ten times more simple for an indie developer like me. First thing I have immediate trouble with is the phrasing of AWS which is confusing. Second is their offerings and ux which is also totally confusing.

But when you get passed that, you still have to do more configures than in azure. If you do not use Visual Studio (VS) or.NET you can still download the whole deploy profile file you need directly from the app service within Azure. In Azure, I can create a new project and it will autogenerate the entire profile for me, run my migrations and I can deploy from within visual studio in minutes. Coming from a 'classic open source background', Microsoft has totally won me over. I save so much time with Azure and VS it's crazy. I have experience of AWS and Azure and personally I just think Azure beats AWS in every aspect.

Guess by the downvoting that there's a reason people feel the 'metrics collection' shouldn't be Open Sourced? It was a childish and immature comment, not appropriate for HN. That's why it is getting downvoted.

In addition, this comment talking about the downvotes will get downvoted as well. Not only for the fact that you are talking about downvotes in your comment, but by the fact that your comment is effectively 'begging the question.' Rather than make one-off snide comments, actually contribute something that is respectful to other people's time. The strategy is an enterprise play.

MS has loss the consumer for mobile, so focusing on enterprise to take advantage of its strongest strength. Enterprise needs cloud: Azure.

Enterprise needs hardware: Surface Pro/Win10. Making it stick is the many enterprise C# developers and one developer tools for all platforms, outside or within enterprise. This will effectively counter IBM/Apple's Swift strategy with iOS devices for the enterprise. And keeping its enterprise customers away from AWS and Google. I'm learning React Native, MS is giving me pause to look at Xamarin. As a side note, it might be good startup idea to create a Xamarin clone that uses Swift that targets all platform.

Likely acquire by Apple or IBM. Fastest way is for JetBrain to spin off one unit:-). This will effectively counter IBM/Apple's Swift strategy with iOS devices for the enterprise.

In a similar vein, Satya Nadella's new 'vision' expressed in yesterday's keynote, aka the future of chat bots with their AI / personal agents (channeling some of the original General Magic vision of 25 years ago), strikes me as more attainable for 'developers developers developers' v.s. The marketing messages / PR spin coming from IBM on the Watson AI. I'm learning React Native, MS is giving me pause to look at Xamarin. Let's see what Facebook has to say at F8 starting April 12th. The competition is great.

We are in a much better place today v.s. 20 years ago when Microsoft was a monopoly and expending time and money trying to kill Netscape and battle Sun's lawyers over Java. I would say that it's not to swallow but rather to embrace. I have been developing middleware in Java, C and.NET on Linux and Windows Servers using basically every possible editor/ide/debugger combination. I have always regretted the fact that Java and Linux did not have anything on par with what Visual Studio provides.

Now that most of the tooling is free deciding which tool to use will be a no brainer for everyone that has just touched VS and will become extremly tempting also for anybody else. At the same time this will push adoption of.NET and I foresee that in the next 10 years.NET will erode much of Java space.

In my opinion the stategy is not to swallow Linux but rather to push.NET. On premise Servers are becoming less relevant Linux or Windows won't make much difference in the future. What will make a difference is what the cloud will support and provide. Aside from a good lesson in 'how to fuck up financial engineering' (give in to your shareholders every demand, without ever once mentioning that that's exactly why your share price dropped by a factor of 35-40% since the last CEO got appointed, even while debt increased a LOT and assets were reduced by even more (ie. Despite the drop, IBM is definitely overvalued).

We're getting close to the point that IBM might actually die, or at least get taken over by something like Oracle), what exactly does IBM still do that matters even a little bit? I always wonder about how companies with such resources manage to make so little use of the advantages they develop. For instance: why wasn't Watson running every callcenter on the planet 5 years ago? Right now there is little in Watson's tech that can't be duplicated by 10 other firms and give it another year or 5 and every startup can do it. It's too late. How can management of such behemoths as IBM let those things happen.

Not that Microsoft did better with Windows Speech Server, and Google and Facebook, well they're not even trying. The thing with software is that it gets outdated quickly.

And if you don't get the updates, security fixes etc., there is no point in using it. Microsoft releases it with certain license today, will change license tomorrow and then drop support for open source version. Most people using it will have to move to their proprietary shit. Do you know what Microsoft did when they tried to kill Java?

They implemented a version of JVM on their OS. And that in such a way that if you made apps for Microsoft's JVM, you wouldn't be able to run it on other platforms. There is direct and indirect evidence that this is one of the core strategies Microsoft has used for many years. Given Microsoft's recent embracing of Linux and open source in general, which of the possibilities you think is likely: 1. After calling Linux and Open Source 'cancer', 'something to be not touched with a 12-foot pole', suing Linux and open source software makers for patent violations, making Linux vendors pay to not sue them, now they suddenly believe in healthy competition and want to part take in open source revolution 2. This is a new strategy to 'embrace' Linux and Open Source to start extending at some point in order to finally extinguish it EVEN IF there is A TINY possibility that scenario 1 may be true, I think it is a wise decision to ditch Microsoft for what they have done in the past.

The issue with that is people will leave for alternatives. You seem to think most Microsoft users choose their operating systems. Most of them don't know any better or even if they do, they keep on using the operating system that came with the computer. Also, they have to use software that only runs on Windows. they would for sure never win the users back. People like me who know about this and care never go back. Fortunately for them, most people don't care.

Those who choose them do so either because they have software to run on Windows or because of their excellent marketing in the corporate market. Very, very nice! If anyone from MS is listening: All you need to do to potentially convert me from a Mac user is to address some of the privacy/security and 'user exploitation' concerns around Windows 10.

When I heard that Windows 10 would serve ads to users, just hearing that blacklisted it for me. Anything that serves ads is a low-end bargain-basement crap product, period. You are pegging your entire ecosystem as discount bin trash with those moves. I don't mind paying for good stuff, but I won't even use that kind of crap for free. Apple would never serve me ads on my login screen.

I'm also very concerned about the total lack of user control over telemetry and phone-home features in Windows. Mac also has this problem, but less. You could leapfrog Mac by making this stuff visible and configurable to the user in an easy way via some kind of control panel.

There is an opportunity to do better than Apple here. It's not that I would turn it all off. I'm not a total paranoid in that respect. But I want to see what it is, what it is doing, and have the ability to control my privacy/security 'envelope.' Obviously if I am doing anything security critical like. Developing software to be distributed to millions of endpoint devices. Then I care a lot about security.

Security is not just for huge 'enterprise' customers. (Privacy equals security equals privacy, since privacy invasion exposes information that can be used to violate security.) Honestly, the fact of the matter is that Microsoft has a significantly weaker reputation for security and privacy than Apple. That makes me more concerned about MS software phoning home than Apple software. This is a major problem and you have to do something about it, and in the 21st century that means actually fixing the problem rather than relying on PR to con people into thinking you've fixed the problem. The sorts of power users you are trying to convert with all this dev outreach stuff are not morons and they will see through any shallow commitment to security or privacy instantly.

Pure PR plays in these areas will make you look worse, not better. It's enough to give me the impression that MS and other tech companies (Google, Apple, Facebook) are leveraging superiority in certain areas (with user experience and UI being chief among these) to try to ram privacy invasions and other very undesirable features down the market's throat. Some suspect a government push behind the scenes, but personally I think the answer is simpler and more economic: that data is extremely valuable to advertisers and advertisers are willing to pay a lot for ultra-fine-grained targeting services. Sure governments can piggy-back on all this to implement panopticon type surveillance, but the primary driver is demand for user data in the private sector. The new business model of the tech industry is: give away free stuff and use it to productize the user. Maybe MS is extending this model to developers.

(Facebook too with things like wit.ai.) OSS can't compete. The problem with the OSS ecosystem is this: a product that works is only 10% done. The other 90% is making it work well and making it easy to use. It's not done until I can use it in minutes, not hours or days, and that takes a lot of painful work. An example hit home for me today: Today I was evaluating Microsoft LUIS and wit.ai and I realized that for simpler use cases a lot of what they do could be done with OSS like the Stanford Parser. The problem is that to make those work I'd spend at least a few days just getting that ball of twine up and running, let alone figuring out how to represent my app's intents and entities and such and actually get to something useful. But with LUIS or wit.ai I can do it in minutes to hours and have a ready to go app.

It's incredible. I can get natural language command and control in minutes! Facebook or Microsoft get to mine every single bit of data I send and get a strong degree of lock-in. There are OSS alternatives but they'd take days, weeks, or months to integrate. Therefore they do not exist. What's the plan regarding better documentation? That's the number one reason I've lost interest in Xamarin.

Outwardly, esp. Coming from a C# background, it seems awesome. Then you try to build something other than a todo list and you quickly find out how lacking the docs are. You might find a decent sample for Android, but then nothing for iOS, or vice verse. Forget about OS-X development, the docs are even worse when you get outside of iOS/Android.

I would reconsider Xamarin if the docs improved greatly. Maybe with MS involvement this will finally happen? MS at this point would be better served by integrating React and React-Native in Visual Studio 2015 and Community. I know they recently came out with support for VS Code, but that's a different beast if you are a traditional C#/.Net/VS guy. From my experience with both, React is a pleasure to use, while Xamarin often had me cursing my decision to use the platform. I work actively in Xamarin with both iOS and OSX. Documentation can be somewhat lacking, but it's usually not too hard to figure out.

Xamarin.Forms is pretty well documented, and if ever you need to dive into platform specific code, the translation from Obj-C/Java to C# is about as straightforward as you can get. The classes have the same names, the methods take the same arguments, and if it deviates, the autocomplete provides enough info to figure out the difference. The only exception I've found is for Obj-C constants. It's not always clear which class they're buried in. Overall, I've really enjoyed Xamarin. Development is quick and easy, you can use a lot of NuGet packages, and if you think C# first, platform specific second, it's easy to port code between platforms. It's not about a crummy e-mail address, it's about privacy, trust and freedom, things which you get by default with libre software tools and things which Microsoft has not proven that they can deliver.

And that software is not really free, it comes with a nice lock-in in the form of.NET and C#, two technologies under Microsoft's control. After MS has a track record of at least ten years of doing this open source stuff they will get a break. This thread is proof that for many getting stuff for free is enough to forget a long corporate history and throw their caution to the wind. I've been using Visual Studio for more than 10 years, it never required a login to work or sent any information to Microsoft without a clear permission. Having said that, if you really feel that Visual Studio is disrespectful of your privacy, you shouldn't be compromising on that and simply not use the application. I don't understand people who whine about services while they are enjoying them for free. It's always the same people you never hear complaining about having to create an Apple account to use their developer tools.