When you thought Azure Mobile Services couldn’t become more awesome the .NET backend was thrown into the mix. This gives us an extremely powerful, scalable and easy to work with backend – in the cloud!
In this session, I’ll show you how to get hacking with the .NET Backend for Mobile Services, how to cater for different connectivity patterns by taking data offline and how to leverage other data sources such as Mongo!
Code formatting is an opinionated beast. It always has been a matter of taste, and it always will be a matter of taste. This is the reason, why professional formatting tools, such as Eclipse JDT, offer a gazillion number of options. Which is still not sufficient enough. After all, you can override them inline with tag-comments to make the formatter shut up. Can't we do better than that? What if we could use machine learning techniques to detect the preferred code style that was use in a codebase so far? Turns out, we can.
The Antlr Codebuff project (https://github.com/antlr/codebuff) offers a generic formatter for pretty much any given language. As long as a grammar file exists, existing source can be analyzed to learn about the rules that have been applied while writing the code. Those can than be used to pretty print newly written code. No configuration required. And existing sources will stay as nicely formatted as they are. In the end, the primary purpose of code formatting is not to re-arrange all the keywords, but to make the source layout consistent.
In this talk, we will demonstrate the usage of the codebuff project and how it can be used to format the sources of your repo in a consistent way. We'll also show some other gems that have been revealed when toying around with the technology.
No More Deadlocks; Asynchronous Programming in .NETFilip Ekberg
In this talk I go over what asynchronous programming is, and how to use it. We will discover how to avoid potential deadlocks and what the best practices are in asynchronous programming in .NET.
C# is here to stay, it is time to embrace one of the most popular languages of the future and learn what is coming. In this talk we will look at how C# has evolved over time, and why it is definitely here to stay!
Did you think C# was already the perfect programming language? Did you think there was no work left on refining the language?
In this session I’ll walk through what’s new in C# 6.0, how the new open-source compiler helped and why we have an awesome time ahead!
Code formatting is an opinionated beast. It always has been a matter of taste, and it always will be a matter of taste. This is the reason, why professional formatting tools, such as Eclipse JDT, offer a gazillion number of options. Which is still not sufficient enough. After all, you can override them inline with tag-comments to make the formatter shut up. Can't we do better than that? What if we could use machine learning techniques to detect the preferred code style that was use in a codebase so far? Turns out, we can.
The Antlr Codebuff project (https://github.com/antlr/codebuff) offers a generic formatter for pretty much any given language. As long as a grammar file exists, existing source can be analyzed to learn about the rules that have been applied while writing the code. Those can than be used to pretty print newly written code. No configuration required. And existing sources will stay as nicely formatted as they are. In the end, the primary purpose of code formatting is not to re-arrange all the keywords, but to make the source layout consistent.
In this talk, we will demonstrate the usage of the codebuff project and how it can be used to format the sources of your repo in a consistent way. We'll also show some other gems that have been revealed when toying around with the technology.
No More Deadlocks; Asynchronous Programming in .NETFilip Ekberg
In this talk I go over what asynchronous programming is, and how to use it. We will discover how to avoid potential deadlocks and what the best practices are in asynchronous programming in .NET.
C# is here to stay, it is time to embrace one of the most popular languages of the future and learn what is coming. In this talk we will look at how C# has evolved over time, and why it is definitely here to stay!
Did you think C# was already the perfect programming language? Did you think there was no work left on refining the language?
In this session I’ll walk through what’s new in C# 6.0, how the new open-source compiler helped and why we have an awesome time ahead!
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...Eduardo Pelegri-Llopart
Presentation at Progress Exchange 2014.
The Internet of Things is everywhere, from the connected home to the connected car, from smart watches to smart glasses, from beacons to smart thermostats. In this session we will provide an updated view of the IOT space and we will show you how Pacific technology like Node.js and Rollbase can be used to build IOT applications.
The presentation included a demo showing how Node.js and MongoDB can be used to process a GPS feed (from vehicles like snow plows), using MongoDB to store the data. The data is then presented to Rollbase as an external source where it can be combined with other sources in model-driven productivity applications. The content is also exposed via REST through a SPA using AngularJS and through an Apache Cordova (Phonegap)-based mobile app.
These is the slide deck from my talk at the Brisbane .NET user group on November 15th, 2016. The talk covered the integration story between Xamarin and Azure, focusing on storage with a deeper look at the Offline Data Sync feature.
Have your cake and eat it too: adopting technologies without sacrificing - Pa...Internet World
Interop Academy - June 19th, 11:30-12:00
The layer “cake” that’s become IT is flavored with consolidation, cloud, big data, BYOD, SDN and other acronyms to boot. Eating this cake inevitably leaves organizations with application performance issues. Come learn how IT can have its cake and eat it too.
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...SORACOM,INC
20170131
FiSH 2017 (Fukuoka International Startup Hub)
http://www.f2ff.jp/fish/
「SORACOM The secure, scalable, simple platform for your internet of things」
Yuta Imai
Solution Architect, SORACOM,INC
views
https://www.wizshark.net/ Looking for a tool to simplify, streamline, and accurately visualize wireless packet capture diagnosis?
Wi-Fi Troubleshooting with WizShark – A picture is worth a thousand packets.
- Visual, cloud-based and collaborative
- Vendor agnostic
- More intuitive than Wireshark
- Low risk and not cost prohibitive
- Requires no installation, configuration or maintenance of hardware or software
==> https://www.wizshark.net/
Follow WizShark on Twitter @WizShark
WizShark : Wi-Fi Troubleshooting Made Easy - CWNP-conference 2014gopinathkn
https://www.wizshark.net/ Looking for a tool to simplify, streamline, and accurately visualize wireless packet capture diagnosis?
Wi-Fi Troubleshooting with WizShark – A picture is worth a thousand packets.
- Visual, cloud-based and collaborative
- Vendor agnostic
- More intuitive than Wireshark
- Low risk and not cost prohibitive
- Requires no installation, configuration or maintenance of hardware or software
==> https://www.wizshark.net/
Follow WizShark on Twitter @WizShark
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...Eduardo Pelegri-Llopart
Presentation at Progress Exchange 2014.
The Internet of Things is everywhere, from the connected home to the connected car, from smart watches to smart glasses, from beacons to smart thermostats. In this session we will provide an updated view of the IOT space and we will show you how Pacific technology like Node.js and Rollbase can be used to build IOT applications.
The presentation included a demo showing how Node.js and MongoDB can be used to process a GPS feed (from vehicles like snow plows), using MongoDB to store the data. The data is then presented to Rollbase as an external source where it can be combined with other sources in model-driven productivity applications. The content is also exposed via REST through a SPA using AngularJS and through an Apache Cordova (Phonegap)-based mobile app.
These is the slide deck from my talk at the Brisbane .NET user group on November 15th, 2016. The talk covered the integration story between Xamarin and Azure, focusing on storage with a deeper look at the Offline Data Sync feature.
Have your cake and eat it too: adopting technologies without sacrificing - Pa...Internet World
Interop Academy - June 19th, 11:30-12:00
The layer “cake” that’s become IT is flavored with consolidation, cloud, big data, BYOD, SDN and other acronyms to boot. Eating this cake inevitably leaves organizations with application performance issues. Come learn how IT can have its cake and eat it too.
FiSH 2017 (Fukuoka International Startup Hub)| SORACOM The secure, scalable, ...SORACOM,INC
20170131
FiSH 2017 (Fukuoka International Startup Hub)
http://www.f2ff.jp/fish/
「SORACOM The secure, scalable, simple platform for your internet of things」
Yuta Imai
Solution Architect, SORACOM,INC
views
https://www.wizshark.net/ Looking for a tool to simplify, streamline, and accurately visualize wireless packet capture diagnosis?
Wi-Fi Troubleshooting with WizShark – A picture is worth a thousand packets.
- Visual, cloud-based and collaborative
- Vendor agnostic
- More intuitive than Wireshark
- Low risk and not cost prohibitive
- Requires no installation, configuration or maintenance of hardware or software
==> https://www.wizshark.net/
Follow WizShark on Twitter @WizShark
WizShark : Wi-Fi Troubleshooting Made Easy - CWNP-conference 2014gopinathkn
https://www.wizshark.net/ Looking for a tool to simplify, streamline, and accurately visualize wireless packet capture diagnosis?
Wi-Fi Troubleshooting with WizShark – A picture is worth a thousand packets.
- Visual, cloud-based and collaborative
- Vendor agnostic
- More intuitive than Wireshark
- Low risk and not cost prohibitive
- Requires no installation, configuration or maintenance of hardware or software
==> https://www.wizshark.net/
Follow WizShark on Twitter @WizShark
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
We’ve got a packed Agenda today with everything from
A quick re-cap of what mobile services is
How to use .NET for the Mobile Service Backend
How to take our Data Offline
And how to use alternative data stores
If you have ANY questions during the talk, please feel free to interrupt me any time!
If you don’t like to ask questions here, grab me after the talk, I’ll happily help out and answer the questions to the best of my knowledge
Quick 1-2 minute Mobile Services recap
How many Mobile Service Experts do we have in the room?
How many of you have never seen Mobile Services Before?
How many of you can’t be bothered to raise your hand?
How many of you have used the NodeJS Backend?
How many of you actually like working with it?
How many of you ENJOY debugging it?
NO MORE CONSOLE LOGGING DEBUGGING!
I Give YOU the .NET Backend For Mobile Services
Hosts our controllers, everything else is maintained by Azure
“Platform as a Service ++” – “The next generation of platform as a service”
Bring Your Own Controllers!
Lets us more easily filter data before sent to client
Use built in [Authorize] when introducing Authentication
You don’t need to host this in Azure
But why wouldn’t you?!
Integrates with the SAME platforms as before:
iOS
Android
Windows Phone
Windows Store
REST..
The contracts/api is the same as before!
The NodeJS backend we all loved to debug is in the past, we can now debug our application like any other .NET application
EVEN when it’s published to the cloud!
Let us now take a look at building a Mobile Service, backed by Web API that we can run, debug and work more easily with both locally and in the cloud
I want to tell you a story…
When arriving in Australia – The first thing that I did was to run around with my soon to be wife in Sydney CBD to find a GOOD, fast and reliable mobile carrier.
After understanding that there’s no such thing here, I went with the one giving me the most data for the buck – to my surprise even if you are allowed to use a lot of data this doesn’t matter if there’s no reception
Time went by and me and my fiancée were quite happy with the 4GB of data that we could use each month, especially since the coverage in Sydney isn’t that too bad!
However, once summer approached and our plans to jump on a plane to Cairns and go for a road trip with her parents for 10 days were in action – the fact that coverage in Sydney was good didn’t mean coverage in the roads in the wilderness would be just as good.
Now, being on the road for 10 days with your fiancée’s parents is an interesting achievement on it’s own – but when there’s 4 social media addicts in a car without internet coverage – I can just tell you: wow. I don’t know how we survived, but we certainly did
This experience had me thinking, a lot of countries outside Australia, especially European countries are so spoiled when it comes to great internet connection
When apps are being developed by developers in these countries, they don’t consider us poor souls that have to go on road trips and enjoy ourselves here in Australia – no – they cater their applications towards people with constant 100/100 Mbit connections
What if we could use our social media, to for instance just publish our pictures on the trip, do check ins and all that and have this sync whenever we have a connection?
This is where I wish these developers thought more about allowing data to be used offline, as well as online
What if the developers of the applications that we so desperately needed on our journey would think of the different connectivity patterns?
We have people using high speed wifi all day long
We have people using 3G/4G connections more often than wifi
We have people on less good mobile connections such as 2G, they rarely want to sync their data because it is too slow. These people may occasionally connect using wifi
We have people on airplanes, people working on the farms, we have a lot of spots in Australia where there is no connection what so ever, the people working on these locations primarily – they are barely connected at all
We need to cater for all these different connectivity patterns
Our applications may, or may not allow a lower amount of functionality in the different connectivity states – but that is OK!
We just don’t want to tell our users to ALWAYS be online to use our applications, unless it is a true online only solution
Even Streaming services like Spotify allows a offline mode! (Swedish company by the way!)
In Australia, delivering data both over the mobile network and on your home internet connection will cost money
This means we need to think about how much data we send, and when
Can we let the user decide?
Taking Data Offline seems like the obvious decision to make
How many in here have “rolled their own” Offline sync?
We need a good way to manage data we want offline – with all the difficulties that comes with it!
Where do we store the data?
What happens when data has been produced, modified or deleted from different sources?
How many have heard of or used SQLite?
SQLite is a database engine that is:
Self contained which means it doesn’t rely on third party libraries or special frameworks to run
Server-less – you work directly against the database on the file system
No configuration needed!
Transactional
SQLite runs on a WIDE range of devices, which makes it EXCELLENT for cross-platform development
iOS
Android
Windows Phone
Windows Store
Etc..
SQLite is supported on all platforms Mobile Services is supported on!
The support comes out of the box, we simply need to point to a place where our SQLite database is located
Keeping the local version and the server version up to date is key
Mobile Services supply us with an easy way to push and pull changes
This will also tell us about potential problems with the push for instance
When do we want to sync data?
Do we want to sync every time a user comes online?
Remember the different connectivity patterns:
Barely connected users may want to sync manually when they are on their good corporate wifi again
Always connected can be fully automated to look at the device status
Syncing data can cause problems that we need to handle
How many of you LOVE concurrency problems?
We need a good way to handle concurrency
This means that we need a way to handle when data has been changed
Remember when I was on my road trip, what if I needed to do some quick work done on a document in a custom built system.
Imagine I got this text from my boss sends you a text: I NEED THIS CHANGE ASAP! – Completely forgetting about the lack of connectivity!
Now, being in the wilderness surrounded by crocodiles, there’s a few other things on my mind so not taking to much into consideration that I don’t have a good 4G connection – my data isn’t synced
Few hours later I got to a 4G spot – my data tries to sync
We all know that URGENT messages goes to more than one person, so this document was updated by a co-worker instead, he pushed his change before mine
Now I had two problems – Being afraid of nearby crocodiles and sync problems – I really don’t know which one is worse!
So how do we decide what version wins the collision war?
In this case here, we have a few people working on the application, pushing their changes occasionally
We forget about our friends working out in the wilderness, that rarely have connections
They come online and tries to sync their data
BAM – doesn’t work because there’s a concurrency issue
So who wins?
How do we weight which version is the best to take?
Last in wins?
First in wins?
Do we pre-lock data?
In the case of Mobile Services, we have a few concurrency strategies that we can take into consideration
We could just overwrite the change whenever there is a push – but that is just avoiding the problem!
We do not want to lock the data, as this requires us to be online
When I was running from crocodiles, being haunted by SMSes from my boss – do I really want to start looking for a 4G spot to lock my data? I think not!
We can use something called Optimistic Concurrency
This means we can notify the user about the concurrency and we’re not locking any data in advance
When there is a conflict, we can simply ask the user what version to take
We all know that people will always say “CHOOSE LOCAL VERSION”
Hands up if you handle sync conflicts by saying “CHOOSE LOCAL VERSION”!
What if two independent fields of an object changed, can’t we just merge?
We won’t look at how to implement a more advance sync, where you allow users to merge
It is certainly something to keep in mind, users might want to get the options to merge their data instead of overwriting
Let us now take a look at how we can introduce offline data in our application
We will look at how to connect to our pre-existing mobile service
Without changing anything on the server, we will introduce a local store for our data on our devices
We will then make sure that the data is downloaded and synced when there is a change
Need to install SQLite extensions
Install-Package WindowsAzure.MobileServices.SQLiteStore -pre
We have seen how to setup a new Mobile Service and connect to a SQL Server that is hosted in Azure
This may have indicated to you that you could really tell your Mobile Service to connect to any store
Bring Your Own Database!
Our On-Premises solution may already have a Web API and a data store attached to it
We can easily take our existing Web API controllers and host that with our Mobile Services
This pre-existing solution may of course include a connection to a different data store than what comes out of the box with a new Mobile Service
What stores?
Table Storage
SQL Server
MongoDB
It is very easy to connect to your on-premises solution
In terms of SQL Server
What happens with advance mappings? – AutoMapper
What happens if we don’t want all data exposed from our existing backend? – Allow subset of the data
Let us now take a look at how we can change our backend to instead connect to a data store like Mongo and SQLServer
Connecting to Mongo is much easier than you might think, even though the data store is a bit different from storing something in SQL Server or Table Storage
Offline sync with Mongo requires a bit of tweaking
Connecting to our on-premises SQL Server requires us to define a mapping, using AutoMapper so that we can tell our service which data to expose
To use Mongo: WindowsAzure.MobileServices.Backend.Mongo
Let’s get to it!
We’ve seen a lot of REALLY exciting changes coming from Microsoft in this space
Mobile Services just got a whole lot more powerful as we can bring in our existing Web API, use Web API to define our .NET backend hosted in Mobile Services and use everything that we already know and love about Web API
It’s so awesome that we can hook up our debugger to the cloud and see what is really going on when our application is running – this is an amazing pain point that they have looked after!
The next time I’m on a Road Trip – which will actually be later this year – I really hope more developers have incorporated the idea of offline data
Not EVERYONE have access to 100/100 Mbit all the time
No matter if you are coming in with a Mongo DB, SQL Server or Table Storage – you can introduce this with your Web API and Mobile Service!
Doesn’t matter where you host your Mobile Service – You can host it in your private cloud in your basement – or go for the more scalable and reliable option – Azure
Finally we’ve discovered different ways to handle concurrency and collisions – it may not be as easy as we think!