Is it possible to combine DevExpress MVC Extensions with DexExtreme components in standard MVC application? - devexpress-mvc

We should make a decision in our company what architecture to use in new web project. We've already successfully used DevExpress' WPF components and thinking of buying their web products, but don't have enough experience with them. So, the next question is for people who have some experience with DevExpress' web components.
Could we start the solution as standard MVC project built in VS 2013 and then add DevExpress' MVC extensions such as data grid etc. and DevExtreme components (jQuery or AngularJS) as well? If we can do that, could you explain, please, what could be possible difficulties?

I think it isn't a good idea to mix up server-side DevExpress Mvc Extensions and client-side DevExtreme Widgets. If you are comfortable with asp.net mvc and want to use client-side javascript technologies, look at DevExtreme Mvc Wrappers.
It supports a convenient razor syntax to configure widgets. And you can use javascript to handle events, implement client-side templates etc.
To see how it works in action, refer DevExtreme demos.

Related

Distinctive properties of Web Application Frameworks and Web UI Frameworks?

I am totally new to web applications, and would need a clear and distinctive properties list (differences) where a web application framework stops and an web ui framework starts, to get a deeper/broader understanding of web applications.
As per now I realized, that a web application framework starts at a ajax call, that is wrapped around some rich application, which is written in javascript (client-side technology), but I could not find a distinctive border to web ui frameworks.
Usually in general purpose languages (e.g. C#, Java) for desktop applications, you can clearly state which part of code is handled by a library, or the framework, or your own implementation. How is this with web frameworks (application frameworks and ui frameworks)?
If possible, I have some frameworks, that can be used in the examples: Ext.JS, Angular 4, KendoUI, jQuery, Dojo.
I am also asking this question, because as far as I know, even Wikipedia editors have not been able to precisely categorize the sheer amount of web frameworks. How could those be categorized, based on which distinctive properties?
A Web Application mainly consists of 2 parts
Frontend - The Presentation Layer
Backend - The Data Extraction/Manipulation/Storage Layer
Now talking about a web application framework or let's call it web framework, it is supposed to have the capabilities of both frontend and backend.
Whereas when it comes to web ui frameworks, it resides only in the frontend section and depends on the some other technology in the backed for the data.
As an example, Django is a Web[Application] Framework and Angular is Web UI Framework.
Calling JQuery as Framework is a bit too much as it lacks many features like routing, 2-way data bindings, module dependencies which most of the other modern age frameworks do.
I hope this helps you categories the frameworks when you look at the capabilities provided.
Web UI Framework
Does the framework primarily propose a visual language for your presentation layer to follow? Then it's a web UI framework.
A web UI framework will:
Consume and present the data from the business logic layer
Usually provide plenty of styles
Be concerned with the presentation layer
Examples are Materialize, Bootstrap, Kendo UI.
Web App Framework
Does the framework primarily structure your application layer around proven, scalable design patterns? Then it's a web app framework.
A web app framework will:
Expose an API to work with the DOM
Usually provide services for common needs, such as Routing and AJAX
Be more dogmatic as to how everything orchestrates together
Examples are Angular, AngularJS, React.

XPages for iPhone6: Which controls or framework do you use?

Just got a request for a fresh XPages project where an existing traditional Domino Web application should be modernized and mobilified (iPhone 6 being the target).
I'm comfortable with Boostrap, especially Mark Leuksinks add-on, and that is my first gut feeling.
On the other hand I'm aware of specific Mobile Controls, both from IBM and from Teamstudio, and was wondering if there is a 'best way' you would recommend.
I can pretty much control everything on the server. I'm aiming for quickest effect for minimum effort.
TeamStudio tools are good if you want offline or do other development that does offline (XControls can also be used online, so could give consistent look and feel and development experience).
XPages Mobile Controls require a single XPage in order to get transitions. So if it's a large application, that can make the XPage quite cumbersome. You need to become comfortable with the settings on each mobile page, to know when to refresh and when not to.
If you're familiar with Bootstrap and can "encourage" the end users towards your preference, then as a developer, that would make sense to me (leveraging existing skills means quicker development).
If you're comfortable with Bootstrap and responsive design, we'd certainly encourage going down that route. I take it you are aware that Bootstrap is now part of the XPages Extension Library on OpenNTF ? It was first released there in Nov 2014 and has been continuously updated since. And it will migrate to the core XPages runtime as part of the next GA release
I would use the DAS components and let Domino read/write JSON and implement the frontend using the IONIC framework. It uses AngularJS as JS framework, is conceptually not that different from Bootstrap l, but has all the hooks (using Cordova) to use native phone features.

Mobile app with Node.js backend - What framework to pick for client-side dev?

I'm planning to build a hybrid mobile app,
I have already progressed pretty well with the server-side using Express 3, and PAssport for authentication.
Now I need to make a decision on what framework or library to use for the clinet-side.
I was wondering if I could get some recommendations and perhaps pros and cons of going with frameworks like
Sencha Touch, JQuery Mobile, Phonegap....
and if there is anyother ones that you think it's worth considering please mention them here,
Thanks for any pointers or advice
JQuery Mobile and Sencha Touch are JavaScript libraries that will let you create an HTML5 application that looks like a native application. Cordova/Phonegap lets you wrap your HTML5 app in native code and provides a common JavaScript API that gives you access to native functionality, like taking a picture with the camera or getting the users Contacts. Another benefit of using Cordova is that it creates native applications for you using the same HTML5 app, so you can publish these files to App stores and increase your distribution. With a JQuery/Sencha Touch only app, you can't distribute on app stores because your hybrid app is simply a website (so, I guess it'd only be a mobile app.)
There are hundreds of blog posts comparing different JavaScript frameworks like Sencha vs jQuery vs Dojo, so you should just go off and do some of that reading. Personally I would suggest Dojo as I think it is the most powerful and enterprise ready framework, but it can have a steep learning curve. One thing I like about Dojo though is the build system, you can pick and choose the modules you want so that you don't have to end up including an enormous .js file like JQuery. I have no idea if jQuery can do this, but a lot of user apps I have seen that use Cordova and JQuery end up including all of jQuery and then jQuery mobile.
If you want to access native device features and/or package the web app as a native app and distribute it on the stores, you should use one of those JavaScript frameworks in combinations with Cordova. (Cordova is the new name for PhoneGap.) Phonegap/Cordova is not really used to build mobile web apps, it's used to extend the capabilities of mobile web apps and allow them to access native device functionality in a completely cross platform way.
Ionic is a new framework available for making hybrid apps that I am liking a lot so far. The framework is built with Sass and AngularJS on top of PhoneGap. Ionic just handles the front end so you still build your app with PhoneGap. I found that since it uses AngularJS your javascript code ends up being a lot cleaner and you will save development time making your app slick compared to what you would have to write with jQuery. It also has some beautiful UI elements. The ionic team has done a lot of speed optimizations with the framework so your app will feel more native than your typical hybrid app built purely with PhoneGap. The framework is still in alpha but I have been impressed with it.

VS 2012 All Toolbox items are greyed out [duplicate]

In ASP.NET MVC, do I use the "regular" controls from the toolbox and assign data to them like I did with webforms? Can I use the gridview, for example?
Thank you.
EDIT: The answer appears to be no. So what do you use? Are there any drag and drop controls in Visual Studio like the webform controls?
For the most part, use of MVC is explicitly not a drag/drop affair. There isn't a level of auto-wiring data-bound controls either. The purpose within MVC's structure is to give more direct control over the markup. There are some helper methods that can be used with rendering Form controls. MVC is a very different development model server-side. NOTE, you can combine ASP.Net with MVC into a hybrid project.
I would suggest that you need to be very comfortable with HMTL markup, and how HTTP + HTML communication works in order to be successful with an MVC project. The use of javascript is also very explicit. MVC is very nice with regards to a separation of concerns from back end, and front end in web based applications. This makes it easier to design and test the back-end logic, in comparison to the front-end rendering. It is a framework for web developers (web based applications are the first concern), not a developer framework for a web front end (ASP.Net controls based).
ASP.Net MVC is focused around generating your own HTML using your View Templates. You can't use Webform controls in your Views and have the application handle them the same way as with Webforms. They might render properly, but there is no postback functionality or concept of maintaining their state.
That being said, you can integrate ASP.Net Webforms with your MVC style pages as well. You can always check out the classic Hanselman walkthrough of having a "hybrid" asp.net application: http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx
I believe you can use any control that does not rely on postback functionality.
The answer is Yes and No. Preferrably No.
This is what the community fears, an aggressive blending of asp.net and MVC into an unrecognizable and unecessarily complicated kludge.
For anyone looking at MVC, I'd suggest:
Appreciate clean simple HTML. Empty
out your toolbox :-)
Surf and learn how to code controls
to be generated the way you need them
to. Strongly typed, powerful html
generators will come but I'd prefer
them to be clean and not wrapped in a
control, I want to see the code.
try not to mix asp.net and mvc (
tempting ) but unless you're forced
to, consider it a no-no
So to answer your question, MVC is still new, MVC Contrib, MVC Futures and Html helpers are avaiable in the framework and all over the web. Keep surfing and keep your own library of tweaks then post them so others can find and improve on them and vice versa. MVC can be the change the .net community has been waiting for, let's not go back to drag and drop so quickly.
Good luck!
No, any control that uses the __doPostBack JavaScript function to trigger postbacks will not work. Also there is no concept of ViewState in ASP.NET MVC so any control that relies on ViewState or ControlState will not work either.
The idea behind ASP.NET MVC is to take a different approach than the heavier WebForms model (and most of its controls).
Some controls from the WebForms toolbox will work just fine (although I believe the GridView is not one of them...) in ASP.NET MVC. The keys are that you can't use controls that rely on either
Postbacks (the __doPostback() javascript function), or
Viewstate
However, I'm not sure that you really want to use those controls. One of the main ideas with ASP.NET MVC is to regain control over your html markup - something you don't really have with a GridView. If you want to have a reusable grid layout to present data, I recommend using a PartialView or an Extension Method to the HtmlHelper class, depending on the complexity of your data.
You cannot use WebForms Controls in ASP.NET MVC directly.
But you can wrap any control inside an HTML helper.
Example a GridView:
public static class MvcGrid
{
public static string MyGrid(this HtmlHelper helper)
{
var grid = new GridView();
var source = new[]
{
"Foo",
"Bar",
};
grid.DataSource = source;
grid.DataBind();
var stringWriter = new StringWriter();
var writer = new HtmlTextWriter(stringWriter);
grid.RenderControl(writer);
return stringWriter.ToString();
}
}
But this will not function as a WebForm GridView.
It is just for rendering the HTML.

What is the kohana framework used for?

I´m learning kohana for the first time and need to know some basic facts about the mcv principle.
Up until now i´ve only used Javascript frameworks (ext, openlayers etc) which are referenced in the headers of html pages. The classes are then extracted and used in applications. I can have as many separate applications referencing one Ext.js framework installation as I like.
Kohana,as an mvc framework, is obviously different, but which purpose does it fullfill? Is it used to create web applications inside the Kohana installation ie. one web application...or is it used to create an endless number of applications? As far as I can see, one downloads the kohana framework, and adapts/extends the framework to make an application..e.g. a web cms. Am I on the right lines?
cheers,
Rob
The Kohana framework is typically used to build a web application. You would normally use one Kohana install and work with that to make a web application.
You could if you wanted, install Kohana centrally in somewhere like /usr/share/Kohana
Then you would move the application folder out and set the update the paths in index.php to the right places (there is a system path, module path and application path).
MVC allows is a design pattern for separation of business logic (model), controller (uses the model to get data and pass it to the view) and the view normally is what is outputted to the browser (HTML). You can read more here
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
Yes, typically each web application has its own copy of a library. So, one copy of Kohana is extended to one web app.
MVC is a pattern that is common in web frameworks. It leads to better code reuse and lose coupling among different parts of the app.

Resources