Offline and online application using asp.net mvc - asp.net-mvc

brief history of my project:
2 versions of application, one running in windows form, another running in the web using asp.net
current task: to revamp the project to use asp.net mvc 4 to use only one version of code base.
In final product, there will no more windows form; but only the asp.net mvc. this is with regards with short development timeline.
concern:
my concern is for offline users.
maybe i can host the asp.net mvc4 offline using localhost and sql lite.
When offline users click on check update, there will be able to get the latest version of asp.net mvc 4 ?
any other better solution that is feasible ? i prefer the architecture fits the vb.net

Have you take a look at SPA. That kind of projects, by nature, can work in online and offline mode. One thing to take into account is the ammount of data that the offline mode should handle (most SPAs are using the local storage for offline use, which is a little small)
By looking at this site you will find a lot of resourses on SPA.
http://www.johnpapa.net/spa/

Deploying MVC app with Sqlite in localhost will be quite a challenge in term of maintenance. Maybe you can develop HTML + jQuery solution which can run locally on client system and make use of client cache to hold the temp data. Also it can interact with live app by making ajax calls.

Related

Authentication silverlight to .NET MVC 5

So my first project at this new company is to convert a silverlight project to HTML5. I get mostly done with it but then in gets down to the nitty gritty. I have a legacy database. I essentially recycled the backend and made a client-side SPA solution using HTML5/CSS/Javascript. I come from an Apple/Linux background, so .NET is super new to me. I have learned that it's generally good to ditch the command line and let windows take control. Either ways, here's the problem. I figured out how to query this Pronto DB, and realized the passwords are hashed as they should be, but the mechanism that encrypted them client side was probably windows/silverlight related and I have to do the same in .NET MVC 5. Would have preferred some newer tech but all we got on the server is .NET 4.5 as the runtime env and it's in the red as far as space on the C drive, so upgrading to better software isn't an option. So basically, can anyone tell me how to tell .NET MVC 5 to reuse my DB for authentication in the same manner that a silverlight app would? Essentially, it's the same concept as how I'm re-using the backend with AJAX, but I imagine some pre-packaged GUI solution for telling windows that it should hash the client password and send it to a legacy DB. Tall order but I know they're some extremely intelligent people out there.

Cross Platform Platform

General question:
If I wanted to develop a web site, say ASP.NET MVC (the only web framework I am familiar with), is it generic enough so I can use it to have later apps for iOS, Android, obviously Windows Phone?
I mean I will need to connect somehow to SQL server that is the backend of the ASP.NET MVC web site etc. What are technical difficulties & considerations I need to take into account so that app is generic enough.
Note that I am planning it to be multilingual and will use ASP.NET resources to support that.
Or should I learn completely different framework to have it generic over multiple platforms?
Thanks in advance!
ASP.Net is generic enough. You can expose REST endpoints (although WebAPI is probably better to do that, but you can run that alongside, and consume from, MVC), create full user interfaces, etc.
However, if you are planning a write-once, run-anywhere application to avoid having to develop native device apps (e.g. Android and IOS), make sure to take the time to read this excellent (but long) article.
The MVC framework can definitely be used for mobile devices (when you say apps, I am assuming you mean websites that function as apps), and MVC 4 introduced significantly more support for mobile development, including things like templates (http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253809).
MVC is a move to a less heavy handed framework than, for example, Webforms, and it should give you the flexibility to develop for any device. However, it does also open you up to coding yourself into some problems if you approach it in the wrong way, so make sure you are familiar with the framework before trying to develop some super next-gen responsive web app.
You can expose your ASP.NET MVC controllers to other platforms, like web services or Web API, so the client, IOS, Android or anything else can call your services.

Sessions when one has an ASP.NET MVC 4 + Node.JS Hybrid application

I have already done a proof where I can include Node.JS within an ASP.NET MVC application.
Assume that I am going to use an external session provider like windows server appfabric Cache or memcache.
I have an application where there is a quite sophisticated assembly that we use to build middle tier objects that we then store in the session. The assembly and the objects it produces is our most valuable piece and I cannot justify rewriting this C# project into something this is more Node.JS friendly.
This data is stored in an external cache, and now the node.JS developers need access to that.
What techniques have you guys used in situations like this? I am pretty sure that I am going to have to have some sort of service interface provide by the asp.net side as it is the one that owns this system of record.
I am also looking for a green field option for new projects that allow both ASP.NET MVC and Node.Js work together well in a hybrid fashion anyway, so perhaps this could be solved by data being stored in a convention that works for both.
Thanks.
I wouldn't use ASP.NET session at all. Maybe a database would be a more interoperable approach. SQL Server or even NoSQL solution such as RavenDB might be a good choice.
The problem with ASP.NET out-of-proc session state providers is that they use non-interoperable serializers (such as BinaryFormatter or NetDataContractSerializer) so you cannot read the data back from NodeJs. There might even be differences in the serialization mechanism between the different versions of the .NET framework so even with 2 ASP.NET applications running on different versions of the framework it might be a challenge to share session data.

Restful Web services for Mobile App - What language, framework,infrastruture?

I am very new to IOS development.I wonder which language/framework everyone is using to create RESTFUL web services for high traffic, scalable IOS app backend.
The solution requires:
1. Secure Login
2. Restful web services (JSON)
3. High traffic
4. File upload/download
5. Quick search result from large volume database
I am from .NET and MSSQL background. I heard people are using PHP, Java, Python, RoR with IOS webservice development. I understand every language can have pros and cons, just want to know what is prefered in today's trend.
And for database, is NoSQL database a prefered choice than RDBMS for scalable large volume databse? I am checking MongoDB.
Apologies if I am asking wrong questions. I am investigating the technologies for this new project, and any input will be greatly appreciated!
Thanks
I have worked in three major projects that all of them have desktop clients, web clients, and mobile clients (Android, iOS). The 3 have completed different server side approach, and all of them make me and the users happy:
Project 1:
Server: Delphi + RemObjects
Clients: Delphi desktop apps, PHP Web apps, Java applets, Android apps, iOS apps
Why Delphi? Because the existent project was already a Delphi multi-tier app, the development team have domain of Delphi platform, ans was easy with RemObjects (or even with the standard DataSnap) to return JSON, SOAP or XML-RPC to be invoked by the clients;
Project 2:
Server: PHP
Clients: ExtJS Web apps, Android apps, iOS apps
Why PHP? The development team was experienced with PHP, the projects was originally a PHP web app with some classes well defined and not coupled with the UI. Some new classes in the server that reused the existing code base, just converting to/from JSON were enough to allow the clients to talk to the server, with minimum effort.
Project 3 (initial development):
Server: C# ASP.NET
Clients: ASP.NET apps, Android apps, iOS apps
Why C#? Again: the development team was experienced with C# and ASP.NET, the projects was originally an ASP.NET app. We are refactoring some app logic into web services that will be consumed for both the ASP.NET app and the clients.
As you see, there is no need to make the team learn something completely new on the server side.
I'd suggest you to keep your development in .NET with MSSQL, taking advantage of your current skills.
If the application traffic grows you can move the server app to an IaaS server (like Amazon AWS EC2) that supports SQLServer, or even better to a PaaS server, which in this case Windows Azure will probably be your best friend.
These are all loaded questions that can't be answered without more information about what you're making, etc. I use a combination of Ruby with Sinatra and DataMapper (and SQLite/PostgreSQL) for most of my projects, but that's my personal preference and probably won't be of much help to you.
Rather than choosing a technology stack based on trends, why don't you just pick something with a good user base for help and go from there?

Is Silverlight technology is suitable for the described project

I am going to develop one HRMS application which maitains companies account,marketing,hr and network department information it's functional implementation. Does silverlight is preferable to use with this kind of ERP application.
Silverlight would definitely be a possibility but it would require all users to install the Silverlight plugin.
Since you want to target corporate users, I would probably stick to ASP.NET (WebForms or MVC) if you want a web client and WPF if you want a desktop application.
Silverlight would work; however this sounds like an application more suited for WPF.
not really cause silverlight has not good connection to a back end Database like SQL , its a plugin like flash , you have to make a web services as a work arround for the lack of database connection support

Resources