Which components do I need to host ASP MVC site on Google Cloud? - asp.net-mvc

I'm hoping someone has ventured into hosting ASP MVC site with Google cloud perhaps even leveraged google components with pricing. Last week they released a help guide on ASP MVC with Google cloud, however it only accounts for Windows server and not ASP MVC with Linux. For me, the complexity comes in when I want to tap into other google components like bigquery etc.
I have 2 questions:
Technical: Which google cloud components do I need or select to host the ASP MVC site. (Since .NET is supported, I am talking about cloud sites, similar to Azure)
Compute Pricing: Given that they have pricing based on compute engine/app eninge etc. How do I estimate/calculate the pricing

It depends on what you want to do with the web site and how much you want to configure yourself.
The compute engine is an infrastructure as a service environment, where you will have to configure and manage all the resources you require. This is the cheapest, most flexible option, but requires the overhead of configuring the VM's yourself. You'll need to use the compute engine to configure your .net application. Take a look at Google Compute Engine and this will help with a Linux instance Quickstart Using a Linux VM
The app engine provides a Platform as a Service meaning you just deploy and platform manages resources. This will cost more, but will manage code for some popular languages like Java, Python, PHP or Go (unfortunately .net is not covered). Take a look at Google App Engine
If you have a data storage need for your site, the you'll have to decide what you want to store and how.
Cloud Storage for fully managed data store holding images, blobs and unstructured data.
Cloud Data Store for semi structured NoSQL data.
Cloud SQL for MySQL instance, useful for OLTP
BigQuery for analytic / enterprise data warehouse projects
You can read about the various data store option Google Cloud Data Store Options
In regards to the cost element of your question, you'll have to overlay your requirements onto Google's offerings to build up an estimate. Unfortunately, not having a relevant app engine option will complicate that for you

Related

How to interact with ArcGIS data from ASP.NET MVC

I need to develop an ASP.NET MVC website that takes information from ArcGIS to show maps and other data. ArcGIS is currently running on a local PC so ArcGIS data would need to be exported to some format and uploaded to the server where the website runs so the ASP.NET MVC application takes it and do its job. After some research I found that there are (at least) 3 different ways to interact with ArcGIS: Javascript API, SDK for .NET and ArcObjects.
What would be a solution in order to take the ArcGIS exported data and work with it in ASP.NET? Is this a feasible or possible approach?
Every ooption of the listed by you, has an specific target:
ArcGIS Javascript API: it is designed to be used in webbrowsers, it shows geographic information using javascript, mainly it is intended to connect to ArcGIS Servers, as well as OGC Servers.
ArcGIS Runtime SDK for .NET: if you plan to develop a desktop application with WPF, this is your tool. Last versions of this SDK is also intended for Windows Presentation Foundation (WPF) apps, Universal Windows Platform (UWP) apps, native mobile apps in C# for Android, iOS
ArcObjects:The classic one, this SDK allows you to create WinForms applications with geographic information, also allows to create console applications for automate operations that involve geographic information or maps, it runs over .NET Framework.
ArcGIS Server is a proper way to achieve what you are trying to do. I assume you don't have and don't intend to have one.
You can go with a poor man's GIS server implementation as you described above: put files on server, then write services which would parse those files and provide geometries in a format that your client side can understand. There are various libs for working with esri shapefiles so you could find what suits you.
If you plan to use ArcGIS Runtime to implement your own server I would advise to check licensing because usually it won't allow you as it is licensed per client deployment.
I would advise you to check what ArcGIS Online can offer. Upload you data to their cloud and consume it with your Javascript API. Look at the pricing and maybe free plan will suit your needs. https://developers.arcgis.com/pricing/

What Minimum Azure Features Requires for running ASP MVC with elastic search as a database

I know about elastic search and run a server in Command prompt in Windows 10 and Work in ASP.NET MVC.
I just want to host in Azure platform. as i have been using shared hosting with SQL server before. so i Need help
What will be minimum requirement or features i have to get to host asp.net mvc application compatible with mobile apps ( providing Apis , not for large scale only for 1 , 2 application ) , with elastic search running at the end ?
Do i have to get virtual machine , documentDB etc features.
You have multiple solutions to your scenario.
Using ElasticSearch
1) To run ElasticSearch you need an Azure Virtual Machine, this could be one from the Marketplace, like, an Ubuntu Server. The size of the VM will depend on the load that it has to manage, maybe you can work with an S1 or you might need an S2. In this case, it's your responsability to expose the network interfases for the elastic search service.
2) For your Web App, you'd need an Azure Web App (App Services). Depending on the load, you can go with an S1/S2 and define your scaling strategy if you need to. There are plenty of tools to measure how your Web App is handling load (NewRelic / AppInsights).
3) Finally, it depends on your Data, but you might need to store it in a persistent storage, like Azure SQL or Azure DocumentDB (depends on the nature of the data) in case you need to rebuild your Elastic Search indexes (and thus reindex from the persistent store).
Using Azure Search
1) Instead of Elastic Search, you can use Azure Search, it will simplify the whole scenario, since it's SaaS (Soft-as-a-Service) and you don't need to maintain and configure a VM, just use the service API from your Web App. Under the hood, it's basically Elastic Search/Lucene with added things.
2) You still need the App Service for your Web App.
3) You still need the persistent storage (Azure SQL, DocumentDB) in case you need to reindex your information or create new indexes.
Basically it all boils down to 3 services (VM/Azure Search + App Service + SQL/DocumentDB) + the Network usage that your App consumes, that's how you'd calculate your costs.
We are currently using both solutions on our products (ElasticSearch for an ELK Logging platform / Azure Search for our main client products) and both work well, but it depends really on your wallet and the kind of implementation times you have, the Azure Search approach might be faster.

Azure Mobile Services - Data Access - Developing for both mobile apps and websites

I'm developing with Azure Mobile Services (using SQL Azure) to provide a backend for both IOS and Android mobile apps and a PHP website.
My question is now that now custom apis have been introduced is it considered best practice to wrap everything up in custom api calls rather than e.g. using the CRUD table operation scripts directly from apps or websites?
Additionally for data access from a website should you lock down access to stored procedures and only exec via custom apis, to enforce a consistent approach no matter who the consumer is?
While I appreciate that custom apis and the table scripts are restful it still isn't clear how to architect a solution in the most efficient, reliable way that can enforce business rules in only place allowing each process only one entry point e.g. you have a stored procedure exec'd by an api called from the mobile apps. If the website calls that stored procedure directly without going via the api it could have unwanted side effects because other logic steps will have been missed.
I'm relatively new to Azure so forgive me if I have just missed something fundamental here. I've read many blogs and tutorials but they rapidly go out of date.
Many thanks
In my opinion the great feature of azure mobile services is the push notifications (to ios, android, wp). If you are not going to use that, there's no great advantage to use WAMS
(Windows Azure Mobile Services).
But it's a good choice using Windows Azure as backend since it's easy to scale up /down. In this case, you could create a Webapi and host in a Web Role. As it works with http, you can easily create Restful services and call them from your apps (ios / android).

Windows Azure + Asp.Net MVC + E-Commerce

I will developp and host an e-commerce website based on Asp.Net MVC4 (with several SQL Server Jobs).
I think use Azure in order to stay in Microsoft's world and avoid dedicated server management.
The package Web Site Shared with 1 site / 5Go SQL Server Database / 200Go Bandwidth is very interesting with the price based on 12 months.
But i don't know if this configuration is enough specially on the bandwidth.
What do you think of ? Did you use Azure with this type of application ?
Regards,
Guillaume.
If you want to develop E-Commerce application you will have to secure customers' sensitive data i.e. credit cards, address details etc. via secure connections (HTTPS; in many countries this is legal requirement). For that reason you will have to have SSL support.
Azure Website do not support SSL for custom domains. However, they support SSL for *.azurewebsites.net DNS name. So if your E-Commerce application DNS will be, say, my-ecom-app.azurewebsites.net then it's fine. Otherwise, I would not recommend Azure Website solution yet (I am sure SSL support for custom domains on Azure Website will be implemented).
Azure Cloud Services, on the other had, have full support of SSL for custom domains.
One of the really good websites to check Azure features and development roadmap is ScottGu's Blog
Azure Web Sites do not support SSL and I really don't know of any successful e-commerce site that does not run SSL for at least part of the website. If you really want to host your e-commerce on Azure today your only real choice is to run Virtual Machines for your web front end servers and use them for your DB or use SQL Azure.
We developed platform called Virto Commerce that does just that, MVC4 website hosted on Azure. There was also a need for SQL Jobs (indexing, payment processing, cart cleanups and so on) for which we used WorkerRole (instead of WebRole). WorkerRole and WebRole can actually be combined as part of a single deployment, however it is better to use a different instance for worker roles. In our case WorkerRole acted as a scheduler for multiple jobs defined in the database.
The challenge with WorkerRoles however is to make sure they scale well when new instances are added. So the workload needs to be distributed between multiple instances. This is done through the use of queues and blob locks, where each job is now split into two, one that schedules and partitions the work and the second that actually picks up the next partition and completes it.
Hope this helps!
PS: Virto Commerce is now available as an open source project on codeplex, go to http://virtocommerce.codeplex.com

How to have iOS app communicate with database server?

I have a database on a database server. No web service in place to be consumed by a web application.
If I want my iOS app to communicate with a database server (send & receive data), I know I can create a web service and then call that service from my iOS app. But what web service is recommended for this? Should I just write a .asmx web service in .NET or should I go for MVC WEB API or may be go for WCF ?? I have spend hours doing research on this. Please help.
A lot will depend on where you expect the service to be hosted, and what technology stack(s) are supported by the host. If you are self-hosting, then do whatever works in the technologies you know and understand. If you want to use a host that targets its services to small-to-midsize independent development teams, many providers like Heroku support things like Rails services. PHP is always an option as well. Microsoft-based solutions and Java-based solutions tend to be more widely used in larger enterprises and data centers, and if that's where you'll host your service then these would also be good options. And of course I'm speaking in broad generalities here: For any general trends I might list here there are lots of exceptions where other approaches make sense.
If you'd rather let the decision be driven by what makes things easiest for your iOS code, I would recommend you start with server-side technologies that support REST-ful interfaces using JSON to represent your service's resources. REST-ful services are very easy to consume from iOS, and JSON-based representations of resources are very easy to parse and produce in Objective-C.
I am personally used this approach to set a direction for my app. For the service side, I am going with a Rails implementation of REST-ful web services. I'm a Java developer by profession, but for a small independent project the options for hosting Java services were more limiting than with Rails so I've picked up rails on the side to make my project work. So far it's suited my project quite well.

Resources