I just got an analysis task for an alternative Web UI for our product. My boss likes CRM 2011, so he'd like to get something similar-looking or even the CRM controls themselves, if available. We unfortunately can't build on top of the CRM, as we have pretty sophisticated needs and a very old legacy codebase.
My question: given this screenshot
how much is already available to Webdevelopers, given they target WebForms or MVC.
It seems to use some "standard" UI methodologies in MS world (very Office/desktop-like), like the ribbon, which got "free for everyone" with WPF in .NET 4.5, so maybe that's true for the webcontrols, too? Couldn't find it with a quick search, though.
If that's a dead end, what about 3rd party vendors? Anyone giving you the opportunity to use ribbon and such very desktop-like webcontrols?
Telerik has some really nice controls for dotNet. Here's the ribbon you are looking for: http://demos.telerik.com/aspnet-ajax/ribbonbar/examples/overview/defaultcs.aspx
Related
We have an ASP.NET silverlight application, which is becoming limited by the requirement to have Silverlight installed.
I'd like to switch to a new framework, but don't want to have to build an entire new system from scratch. Ideally I'd like to find a third-party framework that has all of the basics available right out of the box, so we can start adding our pages to the application and use our current business logic (mostly WCF calls). Telerik & ComponentOne seem like good places to start, but so far I haven't seen either of them have a "complete" application that we can use as a starting point. Am I missing something? Can you suggest other frameworks? I'm really looking for something that gives us a great jumping off point to develop a rich UI in as little time as possible.
Some features I'd like to see are:
User authentication/registration/preferences
Custmomizable Site navigation map
Pages avaialble based upon roles
Rich UI experience (right clicks a plus)
I can speak for Telerik as I am one of the evangelist for Telerik. We at telerik have 70+ controls on the ASP.NET AJAX front and they all are RAD controls. You can just drag and drop and you have the flexibility to use a GUI to set the properties or through HTML or through code behind. We complement whatever ASP.NET has to offer and because of that there is no separate learning curve involved.
To get you a feel of completeness - I suggest that you take a look at the following integration examples - an end to end scenario apps.
Olympic Games - http://demos.telerik.com/aspnet-ajax/sample-applications/olympic-games/
Image Gallery - http://demos.telerik.com/aspnet-ajax/imagegallery/
Sales Dashboard - http://demos.telerik.com/aspnet-ajax/salesdashboard/
Rent A Car - http://demos.telerik.com/aspnet-ajax/carrental/
Schedule Builder - http://demos.telerik.com/aspnet-ajax/schedulebuilder/
Web Mail - http://demos.telerik.com/aspnet-ajax/webmail/
Ecommerce - http://demos.telerik.com/aspnet-ajax/ecommercestore/
Whats more - all these demos can be downloaded and you will get the source code. So you can base your project right out of these samples.
Please go through all the above integration examples. Hope this provides some insight into your decision making process.
Also we do have an HTML5 based JavaScript UI framework called Kendo UI. This is a complete client side control rendering using javascript which will speed up your apps like anything. And this can be used in ASP.NET MVC scenarios as this fits very well in those. Nevertheless whether you use MVC or not you can still make use of the HTML5 based JavaScript Widgets available as part of the Kendo UI on any web application platform.
http://demos.kendoui.com/web/overview/index.html
Hope this helps you !
I am planning to learn ASP.NET MVC soon. I wanted to get a clear picture of which view engine should I concentrate on, Spark or Razor? Which one is Microsoft putting more energy into?
Tony, I'm one of the developers on the ASP.NET MVC team. Here are some thoughts:
We developed Razor because we felt that the Aspx view engine had a number of shortcomings and we felt that we could do a lot better (and I do hope that people will agree that the result is a lot better). We would recommend Razor to anyone starting a new MVC 3 application. Anyone with an existing MVC 2 application and a heavy investment in the WebForms view engine will have to do their own cost/benefit analysis and decide if they want to switch.
Both view engines (Razor and Aspx) will continue to be supported (we are not planning on deprecating WebForms) and we will make sure that existing APIs as well as anything new that we add continue to work in both. That said, it might not always be possible to keep the feature set of each view engine at parity (for example, the #model keyword has no direct analouge in WebForms).
Spark is a 3rd-party component and it remains independent from Microsoft (regardless of the fact that its creator, Louis DeJardin is now employeed here). As such we are not currently contributing any code to it (since we've had our hands quite full with Razor). We are, however, fully committed to exposing all the necessary APIs and extensions points to support 3rd-party view engines. For example, in MVC 3 we have made improvements to the New Project and Add View dialogs to make it easier for the Spark (or any other view engine such as NHaml) developers or community to plug Spark into the built in MVC tooling experience.
Ultimately all options are valid (though in my personal opinion the Aspx view engine is slightly less valid :) and it's up to you to find the one that best fits your needs.
Spark has not been developed by Microsoft and I wouldn't say that they have/intend to put much energy on it. On the other hand Razor is Microsoft child and if you want an MS supported view engine go for it.
If you want to stay w/ Microsoft-supported view engines, then your options are Razor or WebForms. I prefer Razor of the two. Spark is arguably a better view engine than Razor is right now (depending on your sense of style), but as Darin pointed out it's not an MS product, so they're not putting energy into it that I'm aware of.
Razor is the best option if you want to minimize the amount of code in your view and if you like the syntax.
WebForms is good if you have a lot of experience with traditional ASP.NET and like the idea of having a code behind.
Spark is not supported or written by Microsoft.
For me, I use Razor as I like the syntax and I find my views a lot cleaner. Sure it's more verbose than haml, but at the same time it still is valid looking HTML and most web developers will pick it up naturally.
In the new WPF application we write, we will be using DevExpress controls suite, and will have a Ribbon.
Currently, the options I see are:
Microsoft - The vendor's offer, probably will get into the library on the next release
DevExpress - The controls library we know and love
Fluent - Open-source, got generally good recommendations
How do the different available ribbon controls compare? What features are / are not supported?
Fluent Ribbon here!
The Microsoft one lacks good support
Update:
Please vote on the Microsoft UserVoice site about the buggy Ribbon control:
https://visualstudio.uservoice.com/forums/121579-visual-studio-ide
Fluent Ribbon is I believe a great choice if you're looking to customize the styling of your ribbon. For example, Microsoft's Ribbon control has had theme options removed and is now only shipped with a single theme.
From my experience, Fluent Ribbon is not so great at design time building in Visual Studio, but in all other areas is superb. It is Open Source so can be customised to your needs and, coupled with MahApps Metro package, you can have complete Metro-styled applications with ease. Below is a screenshot of a sample application made with Fluent.Ribbon, using its 'Office 2013' theme.
Other commercial Ribbons are available and offer more features (such as three-state visibility, as show below in a screenshot from Outlook 2013)
I would advise making a list of all the features you require from the Ribbon control before deciding which one to use and whether a paid commercial Ribbon makes sense for your scenario. In your case, you already have access to DevExpress, so perhaps that may be your best choice.
I believe one of the most used is the Microsoft one.
Microsoft's Ribbon library (October 2010) does not work well with non standard DPI settings. And it's design time support is not good.
Comparing to Microsoft one, I personally think Actipro Ribbon is a better choice. It has EXCELLENT design time support, and works well with non standard DPI.
I have not tried any other Ribbon library yet.
I have read several other posts here, so i get the idea on the pro vs. cons, especially having full control over the rendered html code etc. (in MVC).
My question is regarding the UI controls: In MVC, i will have to write all UI controls myself (or the html equivalent). Now is that not going to be very difficult?
The reason why these 3rd party vendors for asp.net are there is just because of the fact that it is difficult to write UI controls for ASP.NET all by ourselves, and be able to target to all web browsers, and also that we are better off concentrating our time on the business logic rather than spending the whole lot of time writing the UI controls HTML code ourselves.
I understand that this feature gets us the full control over the final html, but is it not counter-productive to do this UI bit ourselves. If it was so easy to write them ourselves, how come these 3-rd party vendors are all living now. We could have done this all by ourselves all these years of WebForms days.
I am sure i am missing something here or being a little stupid, but please enlighten me as to what i am missing in specific regard to the UI bit being written by ourselves.
Just because i get full control over the program by writing in IL code, do we go and do that? We still use C# and things like that - So that theory of "having full control over html" - i am not bought into that idea.
Please help in getting my head around this UI bit.
Other things i understand, about the separation of concern, TDD based development possible with MVC etc.
But why would i go around writing the UI controls all by myself - it is a bit a work isn't it?
The thing is:
If you want to master in web development you have to master HTML + CSS + Javascript
And with WebForms you have to learn the WebForms way to do it, but with MVC you have the power of .Net with the freedom to generate the HTML + CSS + Javascript you want.
Here's a new rant on the subject http://www.charliedigital.com/PermaLink,guid,6dcb0333-9d70-40c7-975b-0ff4011c4661.aspx
Problem is, ASP.NET MVC is much younger product than ASP.NET. For many years 3rd party companies have been developing TONS of reusable components, and I believe that it is only a matter of time before comparable set of controls will be available for ASP.NET MVC.
If you really need very rich GUI with 3rd party controls, and you can't rewrite them in acceptable time - stick with asp.net. Altough in my opinion, MVC gives you tons of power it wouldn't be wise to spend much more time rewriting controls than you can save. If you can live without controls, and like MVC concepts - use MVC, and you'll most certainly see 3rd party solutions as soon as they'll there is growing market (maybe thay've already noticed that, I don't know) for mvc extensions.
I believe that the UI and the user experience are vital to the success of a web app. Making the page intuitive and easy to use, minimizing the amount of navigation the user has to do to get the job done, and providing effective feedback and interactivity can make all the difference between a site that users want to use and one that they avoid.
If you are trying to attract users on a public website, a pleasing appearance and excellent usability are key to building repeat visits.
If you are writing an intranet app to be used by hundreds or thousands of employees all day long -- as I mostly do -- making the UI efficient and easy to use really means a lot to your users.
So, I wouldn't downplay the importance of the UI. It isn't a nuisance. It's a key part of the user experience. I suggest that a web developer should embrace whatever tools and strategies that will get the job done. That often means coding the UI controls yourself. Or working with a teammate who likes doing that part of the work.
I recently refactored a very complex website using ASP.NET + handworked javascript to MVC + jQuery. The complexity of the code was reduced by 50%-75% and became much more testable. I replaced all the complex webcontrols I had to write (with a steep learning curve I had to overcome) with very simple HtmlHelper methods.
Don't forget, when you use custom webcontrols, you are given a very static UI by the control developer. With raw HTML, you can take advantage of styles and ui developed by the whole web industry.
Increased simplicity, decreased development time, testability, flexibility in UI... I don't want to go back.
You also have to remember that ASP.NET MVC is just the first release. I don't think there is intrinsically any reason why you couldn't have the equivalent of server controls to enable certain tasks - remember, there are many server controls that don't generate any mark-up (such as the Repeater, PlaceHolder, ListView). These type of controls could be useful in a future MVC setting, I think.
I believe that ASP.net came around when lots of developers were still used to doing desktop applications and just beginning web development. AT that point in time abstracting the details of the web with controls and post backs was a great way to get people started. At that point we weren't trying to perfect the web, we just wanted to get on it!
Now that the web has matured and we've all slowly learned about html, css, javascript and the likes we want to optimize our websites for our own needs and we don't want to depend on ASP.net Forms controls to control the fine details of our websites.
In summary, I think this is about the natural evolution of many developers from the desktop to the web
I for one, am very thankful that you cannot use ASP.NET controls in MVC.
Controls, as many have already pointed out, are just server side blocks of code that render HTML and javascript on your behalf. Things like a datagrid are great, until someone asks you to make a slight modification, like having a delete confirmation alert, and then it seems impossible to do certain tasks.
The good news is that there are very powerful jQuery tools written to help you. jQgrid is a great grid replacement that does WAY more than the ASP.NET grid...
http://www.trirand.com/blog/
jsTree is a treeview that is fantastic. Again with the jQuery....
http://www.jstree.com/
And the truth is that most things you can do with razor, HTML, javascript and CSS. It's so simple that it's just stupid.
It's hard for people like myself who were web forms developers to grasp MVC and why you should use it because it's so simple. It's difficult to let go of the complexity of conventional ASP.NET. But it feels so good when you do.
And don't mix web forms with MVC. You can do it, but you will wish you hadn't.
Here is the key thing that I think you are missing. When ASP.NET is no longer the MS way of doing things...you will eventually be forced to move on and do something else. I have programmed in perl, ASP classic, then ColdFusion, then PHP, then ASP.NET web forms, then ASP.NET MVC...the only thing that they all have in common is the underlying database, design patterns, best practices for a given set of technology AND...HTML, JavaScript, CSS, and Photoshop.
No one is asking you to learn MVC. No one is telling you to not use WebForms. However, complaining that you have to write a raw UI is not going to get you very far in this industry. You should be learning something new every day...and it sounds like some time spent on HTML and CSS would be a great place to start your focus!
The biggest problem you have with relying on third party controls is when a client asks you to do something that the third party controls don't cover. If you can't replicate their complexity plus the added feature request on your own you are skirting a possible failure in your professional livelihood! You will need to know how to do it all...eventually!
I generally suggest that you embrace new technologies. You don't have to use them...but you should at least know how. This way you will know what the best tool is for any given project.
I've been wondering - what's an equivalent of 'control' from webforms in asp.net mvc? It's not a partial view for sure. What else it can be? Controller + partial views via partial requests?
Maybe i'm dumb, blind or both, but i haven't seen any 'control' for asp.net mvc. Just a lot of code snippets to accomplish one specific thing or another.
I believe that asp.net mvc is quite unfriendly with rapid development. Only way out of this problem - a lot of open source code (like MvcContrib), tutorials, sample applications & most important - slightly smarter developers.
You do not have to replace Webforms controls with something else from MVC. Just mix them - http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx
Well, I was also wondering how to use 3rd party controls in ASP.NET MVC. Obviously, and contrary to some answers here, it had to be possible.
As much time has passed since the question was asked, the industry has evolved. So I've searched and found (but havent' yet tested) solutions such as Telerik Extensions for ASP.NET MVC .
I'm posting this answer here mainly to support other MVC newbees such as myself - Just Google
"asp.net mvc" controls
We have questions about free .NET libraries and applications, but I'm curious about what ASP.NET control packages you've used that provide the best bang for your buck. Yes, paid stuff.
I'll get the ball rolling by saying I love the Telerik controls, but their price tag isn't great. The one reason I would say the value is the greatest here because of the licensing, which makes deployment so easy.
[Full Disclosure: I work at Telerik.]
I won't make any statements about which controls are the best- since clearly my opinions would be biased- but I will say that in the "3rd party" component market (in other words, not Microsoft and not open source) the pricing amongst the big players is all about the same. And in general, if you need the rich functionality offered by any of the 3rd party suites, the price is significantly lower than what you'd pay in your own dev time to rebuild the controls from scratch (or even to customize an open source control).
There are some significant differences in the way the licensing is handled, though, and as Josh originally highlighted, Telerik has the most open, "developer friendly" licensing approach. Purchased controls have no license keys to deal with.
Hope that helps.
I have both Telerik and DevExpress and I find myself, more and more, moving away from the Telerik stuff and using more of the DevExpress controls. I particularly like the DevExpress reporting package (the Telerik one was unusable) and the Grid / PivotGrid. However, Telerik does have better AJAX management helpers (although I no longer use them as I've learned enough about "raw" AJAX) and the Telerik Editor control is the best there is.
So...one vote here for DevExpress.
Telerik is by far the most robust for the cost; but you're right that the cost is a bit high.
We use the "Web.UI" suite from ComponentArt and we're very happy with it. You get the source code, redistribution, etc. Makes our web app stand out for sure.
http://componentart.com
The cost of Telerik's / DevExpress controls are CHEAP compared the cost having one or two people develop "something better". I have had developers work two weeks on just a grid with no Ajax, no client side anything and it looked like crap. Unless you have great skill with tools like jQuery and the team all possesses those skills, it is cheaper to go with a purchased library. Stuck on an issue, open a ticket. It's that simple.