ASP.NET - Mobile Applications Development - asp.net

Dear All,
We are planning to develop Mobile Applications.
Would you please let me know the following information, if you have an idea.
Merits and demerits when we use ASP.NET for Mobile Applications Development.
Best reference book for ASP.NET Mobile Applications Development.
Many Thanks,
Regards,
Anupriya.

So, I'm not sure that I'm understanding your question correctly... When you develop a web application in ASP and host it on a server, both mobile devices and regular computers can use that application in their respective browsers.
It's important to realize the difference between a web application that can be accessed properly on a mobile device and an application that runs natively on a mobile device.
So, if you want to build an application that is accessible on mobile and desktop devices, then a web application is potentially a good choice.
The language you choose for your web application has no bearing on whether or not you will have success in allowing mobile users to access your application.
That being said, what you probably need is a good intro ASP book and (most importantly from your perspective) a good book on mobile website development.

Related

How to create web API and MVC solution separately?

I'm new to the .net application. am trying to develop an application for Accounting Purpose. Am totally confused that how can I use the design pattern, MVC is preferred. I have to use this app both in Desktop and as a mobile app. App should be more secure.
So please guide me how to design the project. Can you please suggest any examples?
WebApi + MVC is good option I think but for this, should I create 2 solution for both API and MVC?
should it work smart phone as well as desktop?
Database-PostgreSQL
Application will have two parts:
Part I – Accessible to the client through the web page
Part II – Back-end accessible only to us (Company) where all the processing is carried out. Perform the initial setup once the client is registered – create the account in the accounting software and create the chart of accounts
Review and process documents
Accounting – the entries will be passed in the application and will be exported to the accounting software
First of all you can find many tutorials out there on the web about creating a ASP.NET MVC project with Web API.
This can be achieved in one solution as you will see in tutorials.
Example: Getting started with ASP.NET Web API
For the desktop and mobile support, I would like to refer to use Responsive Design. Using a library like GetBootstrap you can create websites that change their content dynamically for each type of device ( desktop / tablets / smartphones / ... ).
Now-a-days everything is mobile. So if you are developing something both for Web and mobile app, API has to be the first and only choice.
The reason behind is that--- More or less what Web shows, APP should also show that, but the layouts or UI are different(here comes the client-side). Moreover if APP needs some extra API, I do not think, that would be much overhead if certain extra APIs are written for the APP. Essentially One API codebase suffices both the paradigms.
It is always a good idea to seperate Client-side architecture with server-side architecture.
I would suggest to seperate the client and server(API), and that would be in best of interest.
Your .net application may serve as client side with MVC pattern where M can call API services and C as usually manages the business logic and V displays the results.
You can write API services(server/backend) in .net, nodeJS, PHP, GO any technology which can manage talking to servers. There also you can create certain architecture or flow of your requests.
Hope that helps

Database security consideration while developing app for mobile

we are developing app in asp.net HTML5 css3 for Iphone and Ipad. Its database driven web app. I want to know what are the best pracices to access DB from Mobile client. What are the database security considerations? What are the security risks that I should consider whaile developing such app that will run on mobile.
Since you're developing in asp.net, which is a web framework, the same security considerations should be made as a normal web application.
As it's a web application, mobile or desktop isn't relevant.
Microsoft have a a great website covering Security Considerations for ASP.NET Web Applications, I would suggest you give this a good look over and implement these into any websites you build.
The only things you need to consider whilst building a mobile website is responsive design, and restrictions on the browser.
Responsive Design:
http://blog.teamtreehouse.com/beginners-guide-to-responsive-web-design
Browser Restrictions
For browser restrictions you will have to look around but for example up to iOS 5.x.x you couldn't upload using an input tag, and obviously in iOS you won't be able to download unsupported file types to the device.
Accessing from Client
As with any application where a client is accessing a database with other client data in it, input sanitation is a must.
E.g a link to change a document is like Document.aspx?ID=4
Don't assume that the user wouldn't change the ID in the URL just to see what happens, always do checks for everything the user attempts.

What is the best architecture for building a .NET website that may also support a native mobile app in the future?

I am in the planning phases of building a new ASP.NET website. The website is really a transactional web application where the users will log in and perform basic CRUD data operations. For right now this website will be accessible through a traditional desktop browser and a mobile browser. For the mobile browser we will build a separate scaled down version of the site.
In the future we may decide to create native mobile applications for Android or iOS devices also.
So the question I have is what is the best way to design the system to easily support that? Here is what I am thinking. I am thinking of building out 3 tiers to the site. The back end will be the database - SQL Server 2008. We will use stored procedures for all data access. The middle tier will be a web services tier. This tier will be built using RESTful web services and will contain all of the business logic. These web services will provide access to the database. The front end will be built using ASP.NET. The front end will only contain presentation logic. These tiers will actually be deployed on physically separate servers.
Then I am thinking that when we decide to build a native Android or iOS app that we could build those apps to simply call the same RESTful web services that the main site is calling.
Does this seem like a reasonable approach? The only thing I can think of is that the way we are building it right now the web services would be behind the firewall and would not be accessible to the outside world. When we want to support a native mobile app then we would need to make the web services accessible to the outside world.
Any thoughts? Does this seem like a good approach for building a high availability, high usage web app that needs to support native mobile apps in the future?
Thanks,
Corey
I'm with Rober Harvey there. With ASP.NET MVC you can make the presentation site in no time, use as Models your web service; with the link that he gave you, set the site for mobile browsing, and use the web services for the mobile apps when you build them.
For me it looks like a good plan. Regarding the web services being public, you can protect yourself by implementing API keys in the web service, so only your apps can use it.

Can WPF browser apps be used as a replacement for ASP.NET?

I don't understand the purpose of the WPF browser appliction. Is it simply another way of serving information through a browser, or is it not intended to be used for external deployment?
WPF Browser applications allow you to create very rich, application style UI's deployable via the web, using coding languages windows developers already likely have in their toolset. The downsides are that the users must must have .net installed, and use IE to access the application, considerably limiting the size and scope of your audience. WPF browser applications are very similar to Java applications in that they run in a virtual machine on the client. As it runs on the client, all data access and communication with the server must be done through WCF or web services.
With ASP.NET you have considerably more cross browser compatibility and support, giving you access to a much larger audience, with the possible downside of learning new libraries and the ASP.NET programming model. ASP.NET also provides a rich data access model and data control support. Silverlight is another interesting option based on .NET and WPF, as it is supported by a wide variety of browsers and provides similar rich user interface experiences. It can als be run out of the browser, disconnected if neccesary.
** Update based on Comment Request ***
The big advantage to Silverlight out of browser, is that you get most of the Rich, windows application style functionality, with a web deployable model and tiny install (4-6MB). Silverlight also supports an auto update feature which is VERY nice if you have a large user base.
Microsoft's Official description (propaganda :) )here
Silverlight Out Of Browser
Enables users to place their favorite Silverlight applications directly onto their PC and Mac, with links on the desktop and start menu—all without the need to download an additional runtime or browser plug-in. Further, the new experience enables Silverlight applications to work whether the computer is connected to the Internet or not—a radical improvement to the traditional Web experience. Features include:
Safe and secure. Leveraging the security features of the .NET Framework, Silverlight applications run inside a secure sandbox with persistent isolated storage. These applications have most of the same security restrictions as traditional web apps and so can be trusted without security warnings or prompts, minimizing user interruptions.
Smooth installation. Because Silverlight applications are stored in a local cache and do not require extra privileges to run, the installation process is quick and efficient.
Auto-update. Upon launch, Silverlight applications can check for new versions on the server, and automatically update if one is found.
Internet connectivity detection. Silverlight applications can now detect whether they have Internet connectivity and can react intelligently including caching a users’ data until their connection is restored.
A WPF browser application is a client side technology, rather than ASP(.NET) which is server-side. It is definitely not meant to replace it.
Using a WPF browser application one can provide a rich client inside the browser. However, this will only work when the whole .NET framework is installed. Another similar technology is Silverlight, which uses a very small (the installer about 5-6 MiB) framework, and is available to multiple platforms. It includes a small subset of .NET framework.
You can use it in external deployment considering the above requirements.
The following portion of the above selected comment is wrong:
and use IE to access the application,
considerably limiting the size and
scope of your audience
WPF in the browser (aka XBAP) is works just from FireFox (Mozilla) and Google Chrome. It was true about 2 years ago, but not today.
You could use XAML in silverlight, if thats what you are looking for.
Plus the RIA Application templates makes development quite neat.

Do I have to use J2ME for Blackberry development?

I would like to begin developing for the Blackberry platform and, specifically, the Bold and also the Storm device which is coming out soon. Do I need to get into Java and J2ME or can I develop sites in ASP.NET and just keep utilizing the skills I already have?
I am completely new to mobile platform development and have no idea what it will take to target these Blackberry devices. I am hoping to continue to use my ASP skills.
To develop Blackberry Applications that are full-featured, have acceptable performance, and look nice, you need to use the RIM native apis.
You can use J2ME applications, but they typically don't mesh well with a full-keyboarded device.
And, of course, web apps will look even worse than that.
This question might help you. "Creating a mini-site in asp.NET that works on blackberry, Windows Mobile, and iPhone"
Are you talking about websites (because you say "develop sites in ASP.NET") or native Blackberry applications (because you say "developing for the Blackberry platform")?
Applications which run on the Blackberry use J2ME. If your application is accessed from a browser on the Blackberry, then it's the server the web app runs on that determines the language, not that it's being accessed from the Blackberry browser.
Then there's Blackberry MDS for integration with enterprise apps. I don't know much about this (never used it or seen an application that uses it) but it's described here: http://na.blackberry.com/eng/services/mobile.jsp
Paul
If you are just doing web development, you don't need to know J2ME for Blackberry. J2ME is a supported JAVA framework for device specific applications. You just need to be familiar with HTML rendering for mobile devices
Assuming that you are building a web app that you intend to be loaded by a Blackberry browser, I suggest building mobile specific pages that are cross compatible across many devices types and configurations.
Look at the Blackberry Browser Development Guides which offer suggestions/best-practices for mobile web development that can applied to all of mobile web development.
Please read this https://web.archive.org/web/20150107061257/https://www.oracle.com/technetwork/systems/index-139239.html
It talks about how one application should not mix RIM UI API calls with CLDC and MIDP API calls.
Ofcourse, I have to mention also that that link is really dated.

Resources