As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What's the advantage of one over the other? I am so tempted to implement everything in silverlight now, so is ASP.NET, in particular, with Ajax, going to be dead?
For an enterprise solution especially, with 100+ views and 1000+ pages, is it still feasible?
Why isn't silverlight adopted that much by most enterprises? It is mostly used for videos and galleries, etc.
Cheers
Two completely different tools.
They aren't even competitors, much less one killing the other off. Silverlight just came out, requires browser plugins and a client-side runtime, and only has a fraction of the .Net framework available to it. Enterprise hasn't adopted it yet because most clients are wary about having to roll out browser plugins (anyone remember IE5 and ActiveX?) and still consider Flash a more mature and viable way to do client-side browser apps.
ASP.Net works with any web browser, is well-established, has access to the full .Net framework and the web environment, and can easily handle the load that you are sort-of describing, as long as you know how to set it up properly.
Silverlight is a client-side based solution. It's a miniature .NET runtime and Windows Presentation Foundation package, rolled into one and made (somewhat) cross-platform.
Silverlight won't work on your iPhone, it won't work on really old PCs, etc... You can use it in the enterprise, but if you're doing an enterprise based app based on it, you should probably just develop your stuff in WPF and get all of the features of .NET.
Silverlight isn't adopted much because either A) enterprises are using Windows Forms or WPF because they can or B) because it's relatively new to the game, and it remains to be seen how much traction it will get in the marketplace vs. Flash and Java.
Some advantages/disadvantages:
Silverlight
Lower installed base (although increasing at a good pace), due to necessary VM.
You can program in one language, any of the .Net languages supported for Silverlight
Equivalent apps may perform better on the Silverlight VM due to compiled code nature.
ASP.Net
Higher installed base, due to apps being executed on browser, no extra VM needed.
Ususally use multiple languages for programming - C#/VB.Net, CSS, JavaScript, HTML (there are tools that allow you to circumvent this such as the Google Web Toolkit (GWT).
Equivalent functionality web apps may perform more poorly due to interpreted nature of code executed by the browser.
Why isn't Silverlight adopted by enterprise? Because most computers would need a client installation to view the site. Flash is widespread (most computers have at least some version). HTML and Javascript are even more commonly supported. But Silverlight would definitely be an annoyance which would lose some users.
That said, we use some Silverlight on our internal apps. We have a portal/intranet which runs in a controlled environment and we use some Silverlight there. But Flash and Ajax on the public site.
I can do some amazing things faster in Silverlight than with ASP.net, which would be perfect for a targeted population like enterprise customers. I can't run Silverlight off of my Iphone but I have accessed some of my ASP.net apps from it so that's one example where ASP.net wins.
I'd say it will grow but even at version 3, it's a jumble of codeplex projects and 3rd party controls.
I'm looking for a solution now for drag and drop treeview which I can do easily in AJAX but having trouble finding a solution with silverlight and I've tried on my own.
I would learn both and mix them.
I've targeted certain areas of my personal sites for Silverlight, but am wary of overloading a user with too much. For a blog, for example, I wouldn't redo the whole site in Silverlight--that's overkill--and similar to how you wouldn't have (or shouldn't have) an entire site done in Flash. No matter what, some people will have it blocked or not installed at all, and why exclude potential users/clients/readers?
There's the fact that clients need the runtime installed, which means I'm hesitant to convert any critical functionality over to Silverlight for fear someone just won't have or want to install the runtime.
As far as professionally, we are moving forward with web apps that at least partially make use of Silverlight, but the targeted audience is fairly well-controlled in that we can tell them, "You'll need to have Silverlight installed", and we can reasonably be certain they'll comply. For internal tools where it makes sense we are 100% Silverlight all the way as we have total control over that audience. Again, though, the usage has to make sense.
I am tempted to say go with silverlight, its installbase is still low but its because there still isn't very many silverlight apps out there. It is still very easy to install(not as easy as flash though) so I dont see that as a big issue. Html was never ment to be used for applications so a silverlight app is far better suited for application programming. This is of course only my own opinion but I am sure the direction is more, bigger and higher quality applications running on web and not least apps running on mobiles (Silverlight is also coming to mobiles)
I think we need a better programming model for web applications to keep productivity up when creating more complex web applications and silverlight is certainly a step up from html and javascript.
Related
Is Silverlight just basically Microsoft's version of Adobe Flash? If so, I've read over the years that Flash is very SEO unfriendly (SE bots see it as a blank page, I've been told), and some browsers don't like Flash too much. Are the same things true for Silverlight?
I just have a company website I made in Visual Studio 2010 / vb / asp.net 4.0.
Do you have to be an experienced programmer to work with Silverlight, or is there a nice GUI to help out newbies? I'm just trying to find out, now that I've downloaded 5.0, if the value of learning it is worth it. Thanks!
Silverlight is a lot of things, in summary you could say that it's a light-weight .NET run-time, a subset of WPF and a capable video player.
Silverlight brings XAML to the web, yes, but more importantly it appears that it's becoming more and more a framework for deploying rich business applications over the web, but not through the browser.
Some would probably argue that Silverlight (along with Flash) is dead, and that the HTML5 is the way forward. That might be true, under certain circumstances but Silverlight has a lot of cool data binding tricks as well as a very capable retained mode render which is very suitable for business GUIs.
I would argue that the choice wheter to invest in Silverlight as a technology or not is a question you should ask yourself, basically what's your reach? e.g. I would not develop Facebook using Silverlight because Facebook has to be everywhere. If you wanna go social, then the web is ubiquitous. But if you have a customer base that acknowledge Microsoft, and already run Windows everywhere, the kind of headway you can make with Silverlight is quite astonishing.
I urge you to look at some Silverlight demos to gain a better feel for what Silverlight has to offer. Then to build great Silverlight applications you need to invest time in learning, things like XAML and MVVM (using a lot of data binding).
Silver light is Microsoft's option or alternative to adobe flash its provides user with the feature of developing Application that are rich in UI we do have tools that enable us to develop appealing UI that is Expression Blend. SO there is lot to learn in it but talking about the future of this technology i doubt as after HTML 5.0 which enables us to get most of the features of silver-light i don't think any one will be interested to get an add on plugin to silver-light to achieve same result so its up to u if u want to learn it as some new technology its good but as a future its not that great.
SEO friendliness depends on the amount of effort your developers are ready to put into it, Silverlight and Flash both. Silverlight has a framework (Navigation) allowing deep linking that can help for instance.
The tool chain is top class, you get the arguably best IDE (Visual Studio 2010), and a cool designer friendly tool (Blend) that enables, among other things, non-code oriented development, or put the other way, a designer friendly workflow. The XAML+data binding approach is also much more productive than most of the competing alternative (personal opinion, but shared by many developers).
The value of using and of learning Silverlight both is very dependent on your company's objective and skill set. If you already have proficient .NET developers, intend to target Windows Phone or Windows 8 or even do some WPF (Windows desktop counterpart of Silverlight), the learning is either small or a good one. If you're a pure web shop, valuing multiplatform, needing iOS/Android/etc... support, you're probably better off with HTML+CSS+JS.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have a large web application idea that I would like to work on, which will require secure database interactions, file creation and editing abilities, speed, and output html. It needs to be able to run on a webhost, not a self-run server. What would be the best programming language to use to create it? I am not looking for 'easiest', I am looking for the most useful for the type of web application I wish to develop.
EDIT:
It needs to be able to run on linux.
My pick would be ASP. NET MVC platform with Razor in-line syntax and C# for your code.
.NET ticks all your boxes, plus it has a humongous community, lots of help resources, tutorials etc. online; probably the best coding tool out there (Visual Studio 2010), easy to integrate with cutting-edge stuff like html5, jQuery, CSS3, AJAX etc.
ASP.NET is Microsoft technology, hence you will need to develop on Windows (anything from XP and above will do). C# uses similar syntax to JAVA. Razor is new and fairly easy to use. .NET works very well with most databases and you can even manage both your code and database in the same tool (Visual Studio) depending on which DBMS you'll go for.
And I guess the biggest argument, as Matteo Mosca pointed out is that this very site was built using ASP .NET MVC and, in my opinion, it does its job pretty well.
Please define "webhost". For a lot of people, that means "PHP hoster", and that sort of limits your choice of languages to 1.
For a large webapp, I would definitely take something that runs on the JVM (assuming that your definition of "webhost" includes some shop that accepts .war files for hosting - I usually self-host on virtual machines and run the Play Framework because it is so much easier). On the JVM, you have a choice of frameworks and languages - and again check out Play - and here it starts depending on language skills, specific needs, etcetera. Scala would, for a large app, definitely be on my shortlist these days.
Note that I say "JVM", not "Java". I think the JVM ecosystem rocks - you will probably find a site that takes the standard .war file format to host, if you need a library it is usually there, performance is top-of-the-line. Java as a programming language is so-so, but luckily there is choice these days.
Also, a lot depends on your skills, your preferences, etcetera. I'd say that Python, Perl, Ruby, C# all are very viable languages to build large websites. What development languages do you prefer? At the end of the day, that's a big factor in speed and ease of developement...
I personally would recommend a good structured project (n-layer approach, use of an ORM, etc) under .net 4.0, with the goodness of C# and the Mvc framework (version 3) for the UI part.
If you had bad experiences with .net web forms and you think that sucks, you're right. But the MVC framework is something else, built on the RoR approach.
That's just what I'd use anyway. Consider the power of the features of C# 4.0 (dynamic, linq, generics, etc), the fact that you will be using Visual Studio (which is commonly recognised as the best development ide around) and the great number of free components that are now available, and recently even easy to obtain and use thanks to NuGet package manager.
To give you a great example of a site made with asp.net Mvc - you are on such site right now. Stack Overflow and all the stack exchange sites are built on Asp.net Mvc, if I remember correctly. If not, somebody correct this.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I was looking for some current opinions on WPF based on their 4.0 release.
We are trying to decide if we want a Desktop application with a WCF server, or if we want an ASP.Net web app. I would really like to do it in WPF, however some major concerns have come up that I am not sure if WPF can handle. I have looked around online and a lot of WPF reviews are based on the 3.5 version, so I was looking for some current opinions.
What sort of Support is out there for it? Microsoft support and Community? Is WPF a dying technology or a growing one?
It is harder to find WPF programmers. Is this always going to be the case?
What is the performance like for terminal services? The majority of our users login using WYSE thin-clients to a Windows 2003 terminal server. Each server normally has between 10 and 30 people on it on any given day. Most of our TS users only need basic view/insert/update abilities and our admin staff needs the more advanced features and reporting. The admin users all have XP machines with SP2 or higher.
What other concerns should I have about WPF?
It seems the underlying concern here is whether or not WPF is a mature enough technology for serious desktop application development. The answer there is IMHO certainly yes and the proof I offer is Visual Studio 2010. It is written in WPF, is a major desktop application and has to meet the criteria laid out in your question.
To attempt to head off the 2010 is slow + buggy argument. Yes, 2010 is not a perfect product and has bugs. The vast majority of those problems are not purely a WPF issue but instead are related to legacy code, managed native interop or just interesting interactions between old and new technology.
To answer some of the non-technical questions with hand wavy answers ...
Yes today it's probably harder to find WPF programmers than say WinForm programmers. WPF is a newer technology and hence likely won't have as many developers. Will this be true in the future will only be decided in the future :)
I feel like there is great support for WPF (see the WPF tag on this site for an example). When I started doing WPF work for the 2010 release the vast majority of the questions I had were already answered on this site or in blog tutorials.
#1 - I've done projects with WPF. There is quite a bit of information out there. Microsoft seems to be investing more in Silverlight at the moment, but I suspect that WPF and Silverlight will be merged in the coming years. WPF/Silverlight/XAML will be Microsoft's way of building desktop apps for the foreseeable future.
#2 - Developers with good WPF (or Silverlight) skills are hard to find, though not impossible. WPF/Silverlight definitely has a steep learning curve.
#3 - There have been problems with WPF apps running on terminal server because WPF runs on top of DirectX. I would definitely try running a WPF app on your Windows Server 2003 terminal server to see how it behaves. My biggest concern would be that Microsoft would likely be investing in any WPF-related fixes for Server 2008 TS and I'm not sure they would necessarily port those to Server 2003. As for a good test app, I would grab something like the WPF photo viewer demo (http://msdn.microsoft.com/en-us/library/ms771331%28VS.90%29.aspx). Something reasonably graphically intensive to stress TS.
#4 - Personally #3 is the biggest concern IMHO. If you can't run on Windows Server 2003 TS, the other questions are moot.
Concern #1: What sort of Support
So far, it's growing and growing well. The IDE support is finally decent as of VS2010, and it appears as though MS is going to be pushing this for a good amount of time. There are lost of examples from MS and the community.
Concern #2: It is harder to find WPF programmers.
Well, it depends on how crazy you want to get with your UI. If you want the latest, greatest whiz bang 3D animations and multiple effects, it might be difficult to find someone off the street with all of those skills that you can afford. However, if you're banging out a relatively simple UI, many experienced developers can quickly grow into this role.
Concern #3: What is the performance like for terminal services?
That depends on how much animation and other whiz bang features you want to add. If there is lots happening on the screen, it will take more bandwidth. Once again, a simple interface should have no problems.
Concern #4: What other concerns should I have about WPF?
Hard to say!
There is always a risk that a technology will become obsolete. That's just the way it is. And there's no way to know for sure.
Here is a possible scenario: WPF is being overshadowed by Silverlight, since everyone wants to "do it on the web." You decide to develop your application in Silverlight (even though it's only a subset of WPF's feature set) and get blindsided by HTML 5, which takes over the world because now you can do everything in the browser without a plugin. Even Flash becomes obsolete.
Will it happen? Who knows?
People are still quite happily making Winforms applications, arguably an obsolete technology. Are they worried about obsolescence? Probably not.
As far as I know, Microsoft actively and enthusiastically supports this technology. If you are concerned about performance and other issues, the best way to find out if it meets your needs is to build a prototype.
I work in a company which is primarily concerned with desktop apps not served over the internet.
Part of my value is I have a web based background and proficiencies in ASP.NET, JavaScript, JQuery etc.
The issue I'm having is that compared to a traditional desktop application building a rich web based app is more time consuming. This is understandable in terms of the hoops that need to be jumped through for web development. This is a cause of frustration for those not familiar with the ways of the web.
However because people are used to the non web world where I work I need to utilise every possible tool and technique to be productive as possible while building web based applications.
As such I'm looking for what other people do to be as productive as possible while making web based applications. I'm primarily thinking of ASP.NET (not using MVC) but apart from that everything is open.
The best tools for web development, in my opinion, are:
.Net Reflector
Firebug
IE Developer Toolbar
IE Tester and MyDebugBar
Fiddler
You should also look into NHibernate as an option.
The best choice of tools tends to vary quite a bit from one developer to another. It's also very dependent on the details of the type of application you're building.
For me, Visual Studio Team Suite is indispensable. It has a rich set of visual designers and other features that have a big impact on my productivity. Deep integration with bug reporting and source control is another huge time saver (I use Team Foundation Server).
With web forms, you can of course often use drag-and-drop components, which improves productivity for some people (although not me). I can't say I'm a fan of most third-party components. They can be quirky, take a long time to learn well, and then still not do exactly what I want them to. It's also a skill that often isn't portable from one job to the next.
You can leverage jQuery to help simplify scripting -- although even with jQuery I find scripting to be one of the most time-consuming and error prone aspects of web development.
If it's suitable for your environment, you might explore Silverlight. That way, you can often have the best of both worlds, building desktop-like apps using desktop-like tools, but with web-based deployment (Expression Blend is an awesome tool). You can also use Silverlight as a replacement for JavaScript in many cases, with code that's compiled and type-safe.
Good tools on the data side are critical, such as SQL Server Profiler. Visual Studio Team Data (part of Team Suite) is invaluable for it's data generation, unit testing and deployment and management aspects.
Something very underrated by many web developers is building up an appropriate infrastructure: things like logging and performance counters, that can help you track down problems quickly when they occur. A solid configuration system is also important.
In case it helps, I put together a longer list of tools. I also write about something I call the "ultra-fast approach" in my book, which is about more than just building web sites that run fast; it's also about how to build them quickly and reliably: Ultra-Fast ASP.NET.
You should use third party tools.
Telerik RAD Controls and the AJAXToolkit are two such tools available to you. They make much of the 'fancy' stuff built in.
Then, and probably preferably, use JQuery.
With those three options, you can make a fancy web application in the quickest way possible.
Finally be sure your UI and business logic is properly segregated so you can reuse your business logic easier.
There are several ways to increase productivity while building web applications, and they're not too different from desktop programming.
Code re-use. As a shop that is primarily desktop-based, this may not be an immediate option. But as you build your code-base, you'll find that you can use some of the code over for new applications, and even begin building your own customized frameworks.
Development tool knowledge. If a lot of the tools are similar, then you may see immediate benefit from this. If not, it may take more time as the team gets used to new IDEs, etc.
Third-party tools. UI toolkits, backend frameworks. These exist in both worlds, and could be utilized to help jump start development, until items 1 and 2 can be worked in.
A few must-have tools on the client side (i.e. the browser)
FireBug - let's you debug your javascript, DOM, headers, etc
WebDeveloper - provides all sorts of information about the rendering of the page
Selenium - Web UI functional testing framework + tool
(all are firefox add-ons)
Here's some of the tools I use for IE and FireFox, http://www.learn-ajax.com/blog/2008/04/debugging-tools-for-web-applications_03.aspx . Chrome, Opera and Safari also have their own built in client-side web development tools as well.
Most important tools for ANY productive development
Dual large screen monitors
keyboard and mouse that works for YOU.
Comfortable high-backed chair that will save you taking 2 weeks off for physiotherapy down the road.
I'm working on a project that currently has zero users but we would like to scale up to potentially hundreds. Currently we are running on a MySQL database with AMFPHP interacting with Flex. We used Flex because of its robust graphic features (important to this project) and because the initial developer (not me) already knew ActionScript. We are currently using AIR but might switch to web-based Flash at some point.
My questions are:
Is Flex a good tool for a project like this?
What are the main limitations of Flex that we might encounter?
What are other development platforms we might want to consider?
Thanks.
- Dave
Short answer, Yes. There are already many prime-time Apps using Flex as their UI development platform. If you go to the Adobe site they showcase quite a few.
Speaking personally, I chose Flex for two reasons, first was that, although you probably can do much of what Flex does in HTML or with an appropriate toolkit, Flex is designed for attractive and compelling user experience and has available all of Flash. Plus the development environment and available widgets make it easy and fun to program. I don't want to spark a religious war about HTML vs. Flex, so I'll leave that there - it works for me and my application and customers.
Second, and more important, was that it balances the processing load more towards the client which means my server architecture can be optimised just for serving the content and persisting the data. Most of my business logic has migrated across to the client. Having spent many years in classical architectures I think this is a huge step forward, but I can already her a chorus of disagreement about that too.
My word of caution about Flex comes from needing to adopt the right architecture for your client code. It is pretty easy to create a huge and badly performing app with Flex if you get that wrong. Make everything event driven and apparently asynchronous and you should be OK ('apparently' because the Flash player is single threaded). And that is downside 1, the single threaded Flash player sometimes causes issues.
Downside 2 is perhaps more serious and that is locked down desktops in corporate environments. Quite often your target audience won't have administrative rights to their computer and will have either the wrong flash player or none at all. This is particularly true in public sector organisations and the military, so if you are heading there I would test carefully the presence of Flash amongst your users.
Other than that I heartily recommend Flex. It's also a great thing to have on your CV!
HTH
Flex has no inherent scalability problems, however if you have a graphic intensive application, proper serving of these resources might be a problem, but that has little to do with Flex.
The only note-worthy and likely platform you won't be able to run on is the iPhone (no flash) and some older non-flash mobile devices (although most support Flash-lite nowadays)
As for alternatives, if you are Graphics heavy, and don't mind the iPhone, then Flex is good if not best cross platform solution besides using pure HTML technologies, the trick here is HTML alone can do 99% of what Flex can do, but if your App requires the missing 1% then you're out of Luck, also Flex will reduce crossplatform and most browser compatibility issues. So it might make your work more productive.
Silverlight 2 is an alternative to consider. WPF if you're looking for something with offline support.
Yes, the scale and type of project
fits.
Immaturity of frameworks and libraries you might depend on. Immaturity of IDE's.
Silverlight, JavaFX.
Flex + AIR is probably as good a tool as Visual Basic was; it may be a better tool for having a much more flexible programming language and having free development tools, but keep the limitations in mind....
The main limitation I've seen from working with it is documentation. There seems to be not enough documentation, not good enough documentation, and not enough high-visibility work on it in the community. (This is coming from years in .NET; I've been constantly upset with how little MSDN says about methods but generally able to deal with it by finding the most useful blog posts.)
Other possible development platforms would depend very heavily on the specifics of the project. Web-based platforms bog down in deep, stateful interactions with data sets (even with nice AJAX libraries), whereas maintaining client-side installations of any thick client program (say, Flex + AIR) might be overkill if it's just a few CRUD forms.