We are trying to build an application which has a UI like OUTLOOK?
Something which has a left navigation pane and then right side there is a details pane.
It would be a heavy on data side. We need to access Database numerous times to access the data to be displayed.
Is SILVERLIGHT a good option which will provide RIA effect? Or Should I stick to ASP.NET building aspx pages and giving it a rich effect with Ajax?
What are different ways of handling this situation?
I've always thought ExtJS has a very Office 2007 Look and feel
http://www.extjs.com/deploy/dev/examples/feed-viewer/view.html
I will suggest you look at WPF, it will be perfect for this type of application. It does have the advantages of both ASP.NET since you can create browser pages and also the UI capability of Silverlight, some people say WPF is like Silverlight with steroids.
The RadControls from telerik have a built in Office and Outlook skin and provide all the different controls you want (grid, left panel bar, right grid, right scheduler) Their controls are available for Silverlight, ASP.Net and WPF so you can try them both out and see what works for ya.
Outlook grid example
Outlook Panel Bar Navigation example
Silverlight Scheduler
I'm using them and they're great.
I think you need to decide whether your users are OK with installing your application (WinForms, WPF etc) or if it has be run from a web browser (Silverlight, ExtJS, Ajax). Constructing an Outlook clone in a web environment is often more difficult (browser compatibility), and you can have issues with performance. However web applications are easier to update and maintain.
Consider usability too. For a desktop application Outlook may be a reasonable model to follow, but users often expect the web to work differently from desktop applications.
If you're going to use Silverlight or WPF then check out these blog posts on using the Prism framework to build a modular UI which looks like Outlook.
http://blogs.msdn.com/erwinvandervalk/archive/2009/03/02/how-to-build-an-outlook-style-application.aspx
http://blogs.msdn.com/erwinvandervalk/archive/2009/04/29/how-to-build-an-outlook-style-application-with-prism-v2-part-2.aspx
Prism (http://www.codeplex.com/prism) was designed to build just this sort of modular UI.
Ade
Related
When porting a classic ClientServer Application to a web applciation (by totally rewriting it from scratch) a typical qusstion is
"How do I manage the multi form scenario i am used to?"
In a Windows (Delphi) application, such in my case, the user is using the application accessing more forms in parallel or one at a time but all of them are displayed on screen simultaenously (may be someone is minimized, othres are modal, ....).
In a web application the options are:
1) use different browser tabs
2) Have a kind of Navbar on the left and populate a full screen (vull viewport) "Panel" that contains the "form"
3) Have a "simulation of the classic behavior" as supported by ExtJS (try this example where on a same webpage multiple forms exist and they are movable like on a windows desktop
(3) is strange and it reminds me of RDP
Which alternatives to (1) and (2)?
It's important to get your basic knowledge about web-applications straight first. A desktop application has total control about what forms are shown and what happens on/to them. Web applications communicate only using requests coming in from a web-browser and responses sent back. This can be either by normal navigation to a URL, or by Ajax calls.
There are a number of options that try to translate between the form-designer way of doing things and the request-response nature of the web, but in my personal opinion, this will almost always give a result of lesser quality and will require you to delve into the translation-layer to get this or that strange artefact of it out of the way. So I would suggest to get into HTML and CSS and javascript and decent webpage design as well as building a HTTP Delphi back-end.
See also this list: What Web Application Framework for Delphi is recommended?
(Disclaimer: I'm behind the xxm project)
I have a site that's done using ASP.NET MVC and jQuery. Is it possible to modify my existing project without too much of rework so that it can be used in phonegap to create iphone/android apps?
Here's an approach: move your logic to an MVC WebAPI (or other REST/webservice) project, then convert the MVC site into a simple html/javascript/css/image site (Mobile site). Then refactor your Mobile site to use Ajax/JS to query the WebAPI/Rest services you created. Once you've separated your code this way, you can then package the Mobile site with Phonegap. I'm not sure how much work that will be for you or your project. If you're using a lot of Html Helpers or Razor markup in your views it may be too involved.
The core point of my suggestion here is to separate your mobile UI layer and the backend processing layer so you can only package the Html5/UI/Javascript layer with Phonegap and leave the backend processing on your web server. I don't think I need to explain this, but obviously the app packaged with Phonegap is not going to have the MVC/.Net framework available on the mobile device to render views or execute controllers, etc. By migrating your UI to be simple Html5 and Javascript you can use Ajax/Jquery/Javascript calls against your backend, which you will probably want to host in ASP.Net MVC WebAPI.
Edit: Guess there was some confusion about my suggestion. I'm not saying this is the only way to do go, but this is what I'm familiar with as it's how our team builds our desktop/web + mobile + phonegap + mvc4 + webapi + kendoui application. This pattern works well for us so maybe it'll work for you too, or at least give you some ideas on how to structure your solution. Good luck!
I'm not sure but you need a server to compile the ASP.NET right? so I don't think that will work for you. I think you need to work with AJAX to do your ASP.NET work and separate your ASP.NET code and your HTML-jQuery because Phonegap wants a index.html file. You can store your ASP.NET files at a server tough
The answer to your question really depends on the type of site you are trying to convert. Are you just trying to put a native framework around HTML and get your app into an app store?
If it is is mostly or entirely informational in nature and you have simply used MVC to build brochure-ware type pages then it should be fairly easy to move. This assumes that there is little to no logic other than page to page navigation.
If your site instead pushes a lot of data around that relies on a back-end server you will need to re-architect it to store data locally or pre-fetch it via a manifest. Next you will need to implement a strategy that allows you to push your local data back to the server.
Does you app need to run in a disconnected state?
Phonegap is one of the options if you want to target multiple mobile platforms & may be most widely used. Since you are using jQuery, jQueryMobile will be a least learning-curve path to use. Effort is mostly on the front-end UI and will depend on how many screens you want to design to provide a sub-set or the full set of functionality you already have on the web UI. Most likely you will have to redesign your screens using the jquery-mobile UI widgets documented here. It is also a good way to show it to your customer the initial screen design with navigation.
jquery mobile is great for learning and designing , but it's slow in the web browser control that phone gap runs in .
you'll need a more lightweight framework for this .
you can use an inappbrowser control to show your site in case it's responsive , but you wont have the device camera and contacts and so ...
take a look at : http://docs.phonegap.com/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser
Having a JS web application (ASP.NET MVC, talking via REST with the server) I cannot use the server-side ReportViewer Control to open reports generated by the Microsoft Reporting Services.
I am searching for ways to open reports without making the Reporting Services public. It is no option to pregenerate the reports and just linking them.
My first idea was setting a route to a server-side controller that creates a web request (calling Reporting Services with all necessary parameters), caches the response and returns it to the client. But I am not sure if this will be the best solutions.
Does anybody had the same task and might share his/her solution?
Thank you!
Oskar
In fact, reports may have subreports, which have to load data from the server it's the best choice to use the ReportViewer Control. So the solution is to create an plain old Web Forms APSX having this control included until there will be an updated/new control from Microsoft. This works pretty good.
With no postbacks ReportExecution2005.Render will be your friend. Drop the report viewer and create a scheme that works for you:) Telerik controls just released a MVC viewer control but.
Already, I implemented a BaseReportController in conjunction with a BaseReportModel in conjunction with a BaseReportView that includes paging, exporting, refreshing etc. etc.
Pain in the ass...please let me know when there is something better.
Its time to rebuild my portfolio site, and I am thinking of either using Silverlight (still have to learn the basics but would be fun) or use MVC.NET.
I would like to use Silverlight since its something I am really interested in learning, and building up a small portfolio site should not be an out of this world task. However I do not know if its advisable, since I want my portfolio to be viewed and accessed by everyone, platform independent.
What do you guys think?
Thanks
From an SEO and ease of page bookmarking point of view you might want to go with traditional HTML, i.e. ASP.NET MVC.
The downside of building an entire site in Flash or Silverlight is that users can't bookmark a specific page within it, and search engine bots can't by default follow links or parse the text.
The following page deals with SEO and Silverlight sites.
http://silverlight.net/learn/whitepapers/seo-for-silverlight/
If really want platform independence you should avoid Silverlight, users on Linux especially won't get a good experience at the moment.
However if you want reasonable access by people in general then Silverlight is do-able.
You might ask yourself whether coupling your important portfolio site with your own personal improvement plan is a good idea.
Utlimately then develop your site with ASP.NET-MVC then spend some time with Silverlight without impacting your site, or perhaps include some content via Silverlight.
You can build both of them. It will allow you to see the differences between them and compare them.
I think your portfolio site should show your works also with its structure. If you are doing design, It would be nicer to make your site with Silverlight!
Those are actually not two techonologies that are related in any way or say that you should use one over another. You can have a ASP.NET MVC site (which I prefer and suggest to you) and then use Silverlight parts in it.
I prefer using Silverlight (or Flash for the same matter) only for animations, maybe parts of a website but not for entire website. If only portfolio will be built in Silverlight you should definitely do it in classic HTML too for users that lack Silverlight support.
May be it's too late about answering.
Now, Silverlight seems to go to its end. Microsoft wants to stop supporting it after 2021.
But, since Microsoft says they will ever support OOB mode, I think you could continue to developp to Silverlight today.
So I think, it's up not for animations. It's up to users of the application :
Silverlight has some good avaibilities to simulate windows like application.
After loading data in cache, you can have better user reactivity.
And, you get an other good point : user can easily cancel data they write.
At the end, with RIA services technology, for developpers, this is pretty easy to simulate entities like in client development.
As it says before, you can have mvc web application with silverlight inside.
I'm starting a new project soon and investigating whether or not to use MVC, Silverlight or both. This question Silverlight vs. ASP.NET MVC was a good starting point. But looking over the SL3 beta, it looks like there are two things that change the landscape just a bit. First, the navigation feature which is a direct feature of Silverlight and now there is the .NET RIA Services. While not actually part of Silverlight, it's fairly integrated and seems to bridge the gap between client and server operations. An area, in my opinion where MVC is strong and Silverlight (being a client side technology) was not. I understand that you can still use both, but should you and why?
Simply put, no.
Silverlight and silverlight on the desktop are more like winforms/wpf applications that just happen to run on the web. They're stateful and act very differently from a web site. Silverlight apps can only be run on machines that allow silverlight to run. In a business network setup they may have group policies setup so that silverlight cannot be installed. Then you've got a problem.
ASP.NET MVC however is a stateless type of design where pretty much anyone with a web browser can get to regardless of platform. You have much more freedom with your site using ASP.NET MVC because you don't have a dependency on the end-user having any sort of runtime installed.
I think each has their place and it's pretty much obvious. Silverlight is great for creating a rich experience where applicable. I doubt you'll see too much silverlight popping up replacing web sites.
When we built .NET RIA services we looked to enable developers to basically build out rapid RIA's 100% and as a result we targeted the approach in terms of taken over the burden of ASP.NET WebForms etc. To use the two in a hybrid fashion is possible, but it's a question of which piece do you want to take over the heavy lifting.
If you're Silverlight solution is basic in terms of implementation - ie datagrid of data only - then ASP.NET MVC is a better fit as this way you're not having to worry about deep linking etc (as that comes free inside a native HTML based approach).
If however you're building out a larger RIA solution within Silverlight and are using ASP.NET in ways that are specific, then ok thats fine, but you're going to have to remember that with every page refresh comes a penalty that is of course a page refresh and secondly you need to ensure the said Silverlight instance can find its way back to where it was before you hit the refresh (that or loads in a place that enables the user to find its way forward).
It can be somewhat very tricky despite the goodness we baked into RIA Services.
Scott Barnes / Rich Platforms Product Manager / Microsoft.
I think that both technologies have their places - I think Silverlight will be used mainly for special purpose applications and asp.net MVC will be mainly for public and general purpose style webpages and web applications.
As to which one you want to use, well that depends entirely on your needs and your audience.
Silverlight is coming along nicely even for business applications (Navigation, RIA Services, Data Form etc...) But ya the big problem is the plugin.
Personally, I'm sick and tired of HTML so i'm focusing efforts on Silverlight.
It also depends if you're working on a site for fun or not.
A lot of websites built for businesses and organizations have a "read only" public facing front end. That is, information (inventory, catalogs, corporate news) are presented from a rich database, but the average end user has no ability to edit them.
The natural pattern I have been seeing is to use ASP.NET MVC for the "front end" presentation but to use the Silverlight / RIA functionality to avoid having to write all the CRUD stuff int he administration back end. It is a great fit. The administration userbase is usually much smaller than the total audience and issues of download time, Silverlight penetration and so on are not nearly as problematic.
However the Silverlight RIA / ASP.NET MVC story is a very fuzzy one right now. There isn't much information discussing how to use RIA Services to provide access to a shared repository project of the style you build for MVC projects. link text This makes integrating them difficult right now. You could build both your MVC and RIA layers on top of a common EF or Linq2Sql base but it makes sense to share the intelligence of the Repository classed you build for MVC.
Ideally, we will get good documentation of connecting RIA Services to a Repository style class layer, independent of what the Repository uses to talk to the database underneath and then the rapid development story will be complete.
I dont think silverlight changes the asp.net MVC story.
MVC lets asp.net be more web standard friendly, and forces projects into a more testable, decoupled structure. The later was the sole responsbility of the architect/developer in webforms.
"Personally, I'm sick and tired of HTML so i'm focusing efforts on Silverlight."
Amen to that. javascript too.
I've been developing web apps for over a decade (Classic asp then jumped to .Net as soon as it was in beta). MCTS x2 and MCPD x2 in asp.net.
While i think ASP.Net MVC is great additon for web site developers, i do think web forms with a strict MVP pattern in UI layer is often still better for enterprise / B2b web applications. (dashboard, administration, reporting etc.)
That all said as i move into more into the integration space, SOA, biztalk, wcf etc.
I really am over the giving a sh1t weather this css property is applied validly in "IE version what ever". or "firefox version whats next" and over dealing with the sometimes great sometime want to shoot myself control hierachy in web forms.
Silverlight 3 is really starting to become relevant for LOB applications, i see it as the major compeditor to webforms, not MVC.