?
Solved

"best practice" architecture for adding mobile devices to an existing Webforms MS-SQL project

Posted on 2016-08-12
8
Medium Priority
?
192 Views
Last Modified: 2016-10-07
I am trying to choose the "best practice" architecture for adding mobile device access to an existing WebForms MS-SQL Project.  The current WebForms project's architecture is  "Webforms, interfaced to IIS and .Net, then interfaced to MSSQL".  Using mobile browsers are not an option.  Currently using Visual Studio and SSMS.  Is it good practice to connect the moble devices to IIS for MS-SQL access?
0
Comment
Question by:SamCash
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
8 Comments
 

Author Comment

by:SamCash
ID: 41830307
EE,

I have edited the question.  Hopefully someone will ask for more information if the edits are not enough.  

This is my first mobile task.  I have done a lot of browser to ms sql projects, using IIS and .Net .

Regards
Sam
0
 
LVL 82

Assisted Solution

by:David Johnson, CD, MVP
David Johnson, CD, MVP earned 400 total points
ID: 41830452
I really don't think that there is a "best practice" for this. When it comes to coding a new application if you separated the different areas of the program into the display layer, the business logic layer and the database layer then it would be easy to replace the display layer into webform, winform, IOS, Android apps. You could also replace the database layer with MSSQL, MySQL, Oracle, or whatever is required.
0
 
LVL 28

Expert Comment

by:Ryan McCauley
ID: 41831114
Though I'm not sure all the details based on your description, it sounds like you'll be writing a mobile app using the .NET Compact Framework - I've used it before and the mobile apps work pretty well (and you have access to most of the framework, so your code should run with minimal modification). Obviously the screen sizes are different so you'll have to adjust the layout, but the business layer (if there is one) should be able to run much the same code as what runs on your clients.

As David said, there's not really a "best practice" here, but mobile devices present their own issues - the largest may be intermittent internet/network connectivity. You'll need to either check for a connection and stop your user from doing anything when one isn't there, lock the app to "read only" mode in some way in those cases, or set up a way to cache changes locally and synchronize them to the server once you get back into service range. I've used SQL Server Compact before and had success with it, but it may not be appropriate for you depending on what you're doing.
0
How To Reduce Deployment Times With Pre-Baked AMIs

Even if we can't include all the files in the base image, we can sometimes include some of the larger files that we would otherwise have to download, and we can also sometimes remove the most time-consuming steps. This can help a lot with reducing deployment times.

 

Author Comment

by:SamCash
ID: 41832269
David, Ryan,

Thank you for sharing your experience.

There are currently 221 Stored Procedures (MS SQL 2008r2) that have been in public use for 20 months, very seldom running into any bugs.  A nice interface from sql to C#.  Many helpers and then a business layer that gets/sets about everything one could think of.  Next there is a (separate pages) webform code behind (which types and formats (.ToString() the data or sets properties of controls for the UI presentation, i.e. does little or no actual computing) then the markup.  

What I am thinking is the mobile app would connect to IIS and use everything except the webform code behind and markup.  The mobile app would do requests to IIS calling the same business logic and everything in the below layers.  The app would need to be codded to achieve the similar task which the code behind is doing in a webform and of course the apps different UI.  In addition, thanks Ryan, connectivity, cashing, locking and updating when reconnected.

ps: This project already operates on mobile devices with their browsers, but the loss of screen area, layout, tabs, etc... We have tried a "responsive" approach.  Which indicated we would need to have two sets of pages, mobile/desktop.  Multiple pages or a responsive approach would be just a partial solution, where an app would be a full solution.  Management decided to try a mobile solution, even though we have no experience.  I am the lucky guy.  So if I can leverage all the prior code and just learn the app areas as required above, not having to rewrite all the business logic on down, I might get this done before the end of the century.

Does this seem like a reasonable approach? Comments, ideas, criticism appreciated...

Regards
Sam
0
 
LVL 28

Accepted Solution

by:
Ryan McCauley earned 1600 total points
ID: 41832408
Sounds like a good approach - you actually have a head start in that you have a significant portion of your code running in IIS or on the SQL Server, so you don't need to worry about that functionality.

I think you're on the right track - mobile apps aren't hard at all to develop if you're using .NET CF, especially if you already have a .NET app (or website) as your guideline and original source for the code. It may even be worth moving some of that code into a DLL that supports the website, and then you can have it in both places and just create the new interface for mobile devices.

Good luck!
0
 

Author Comment

by:SamCash
ID: 41832704
Ryan,

.NET CF looks like Windows OS only.  I need Android and IOS first (most of the market) then WinPhone.

So I think I need an interface (3 of them) from the mobile devices to IIS, so I can call the c# functions on IIS, similar to a browser request?  Should I post a question on EE about an interface from the various mobile OS's to IIS?

Regards
Sam
0
 
LVL 28

Expert Comment

by:Ryan McCauley
ID: 41834139
Ah, for some reason I was thinking it was Windows Mobile devices - clearly something you didn't say initially :)

Yes, asking about the best way to access web services from each OS would make sense as a new question - it looks like there are libraries for each that allow you to access them easily, but I've never personally used any and can't really give guidance here.

Good luck!
0

Featured Post

More Than Just A Video Library

Train for your certification. Learn the latest DevOps tools. Grow your skillset to do better work.

At Linux Academy, we release new training modules every week so you'll always be up to date on the latest tech.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
Progress
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question