sharepoint-logo

Featured Post

Case Study: Custom SharePoint Resource Allocation Solution for Lawyers

By: Terence Wiles

With the increased globalization of the economy, there is an obvious need to create mobile apps that handle multiple languages in a clean and extensible manner. This is known as localization (L10n) in the software development community, and various platforms deal with it in their own unique ways. We will look at how iOS manages L10n here, and the decisions that have to be made in order to stay on top of a dynamic situation.

There are several resources on iOS L10n available, both in official publications by Apple, and some articles and blog posts written by members of the development community:

  • Apple provides a home page for Internationalization (I18n), with links to several additional detailed sources, including WWDC videos.
  • There is an excellent tutorial on the MacRumors iPhone/iPad Programming Forum that goes into great detail on both how to convert your app to handle L10n and managing the app on an ongoing basis.
  • For apps being developed to target iOS 5, using pre-Xcode 4.5, Ray Wenderlich’s blog provides a good starting point with this blog post.

This article will take a high-level look at what needs to be done to fully localize an app.  Three follow-up articles will look at the nuts-and-bolts details of how to accomplish this through building an Xcode iOS app from scratch.  We’ll look at creating an app with storyboards, and the process of configuring the project to localize these storyboards.  Next, we’ll cover how to handle localization programmatically, if you find you have to manipulate text before displaying it. Finally, we’ll wrap the series up with a look at how to communicate with a web service and identify the language of the data you are expecting to download.

Read More…

Let’s face it: Technology is migrating toward the cloud. Unless you have sensitive or secret data you can’t share with third parties, then you have no reason not to embrace it. In short, the cloud is affordable, effective, 99.9% available anywhere, has almost unlimited storage, and allows you to focus on matters other than keeping your network up-to-date — and all you need is an internet connection. Industry experts say that cloud computing will only continue to grow and expand over the next few years, which means companies will need to keep up, or get left behind.

The “Mobile Worker” (like you, maybe), is growing more dependent on answering emails and working on the go with a smartphone, tablet and laptop both outside and inside the office. With so many efficient devices and capabilities allowing coworkers to touch base at once, it would only make sense to have all of your data stored in one centralized location. Additionally, most cloud services, such as Windows Azure, provide a web interface. This means you can access your data on any device or platform that has internet capabilities. Read More…

After watching demos on Power View I was excited to begin using the tool, as we recently configured SQL 2012 SSRS and PowerPivot with SharePoint 2010 for an internationally-focused client. But after playing around with my PowerPivot model in Power View, I realized the Map chart type that I had been so looking forward to using…was not available.

Turns out we had installed SQL 2012 but not SQL 2012 SP1. Power View gets a number of important upgrades in SP1, including much-needed filtering that’s missing from the earlier version, as well as my eagerly anticipated Map chart type. Read More…

Model-View-ViewModel (MVVM) is a client-side design pattern. It guides the structure and design of your code to help you achieve “Separation of Concerns.”  Implementing MVVM requires a bit of a mind-shift in the way you think about the functionality of your application. It has a significant learning curve and requires some additional upfront effort to get started on the right path. But the benefits are significant:

  • Your code is easier to understand, maintain and troubleshoot.
  • You are much more productive when you leverage the frameworks’ (WPF, Silverlight, XAML, WinRT) built-in features like Data Binding, Resource Dictionaries, Dependency Properties, Routed Events, Commands, etc.
  • You can test your app’s behavior “under-the-skin,” avoiding the pitfalls and cost of testing at the UI level.
  • Your ViewModels afford testability. You can have unit test coverage allowing “Test-Driven-Development” and “Automated Regressions.”
  • Decoupling the View from the ViewModel in the way enabled by MVVM allows designers and developers to work productively in harmony.

If you want your Windows Phone App and Windows Store App to be also available on Android, iPhone and iPad, you will be able to reuse a significant portion of your effort when developing on those other platforms if your app is structured as an MVVM app.

I sense, from my conversations and interactions with developers in code-camps and user-groups over many years, that these potentially significant advantages are not enough of a motivation for many developers to make the switch to MVVM. There is also a perception that implementing MVVM is overkill for a “small” app. MVVM is perceived to be too heavyweight and not worth the effort for many Windows Phone Apps, Windows Store Apps and development prototypes. This is a view shared by many and I understand and sympathize with this perception. However, I am proposing that we use MVVM for all applications, however small and seemingly insignificant. My proposal is based on two realizations:

  1. Inserting the learning curve of MVVM in the critical path of a large project is counterproductive, in my opinion. Using MVVM in small apps and prototypes is the best way to understand and experience the MVVM development style and thinking.
  2. There is a brand-new reason for C# developers to start “thinking in MVVM.” Structuring your C# and XAML code as MVVM and separating your classes as Models, ViewModels, Views, Services, DataAccess and such will give you a head start in reusing a lot of your code on other platforms like Android and iOS. Think about this for a moment – if you want your small Windows Phone App and Windows Store App to be available on Android, iPhone and iPad, you will be able to reuse a significant portion of your effort when developing on those other platforms if your app is structured as an MVVM app. The potential increase in the reach, customer base and revenue is enough for a lot of developers to reconsider the effort to achieve the separation of concerns enabled by MVVM.

Reusing C# code to create apps for Android and iOS is made possible by Xamarin. The level of code reuse depends on the level of separation-of-concerns that you achieve in your application. The Models, Services and Data Access code is reusable with little effort through Xamarin’s absolutely fantastic ability to create native Android and iOS apps using C# code. It is possible, by using MVVMCross, to take code reuse to another level by reusing your ViewModels also. Stay tuned for more about these techniques and technologies on this blog. In the meantime, whet your appetite by reviewing these resources:

AIS has invested heavily in early adoption and technical readiness for designing and building browser-based and native applications for mobile, touch-enabled devices. See examples of our work here, and read more about our full range of mobile-related offerings here

Technology is advancing rapidly, and with its advance comes new and useful ways to complete everyday tasks. In this post I’d like to talk about some of the benefits of replacing the paper- or desktop-based ways of an employee whose job is performed primarily in the field. (Home health workers or field service technicians, for example.)

Quality custom software that’s designed to meet the specific needs of a business is easy to adapt and should have minimal adoption time and training costs. Workflows that are built according to an employee’s ideal task flow should encourage thorough service calls and better communication flow in all directions.

As an employee who may have to make several service trips per day, mobility is essential. Paper can be completely eliminated, pictures no longer lost or need to be transferred by media card, forms can be filled out by simply speaking into a microphone and tapping on some check boxes. Signatures can be captured easily just by swiping a finger on a screen, bar codes can be read and captured. The possibilities for becoming more productive are expanding each day. Read More…

Broken iphone Screen - Broken Web PageI was rushing out of my house on a Thursday afternoon and my phone fell squarely onto the pavement. As I picked it up and gingerly turned it over in my hands, I gasped. The screen was cracked, utterly and completely. It was a moment so steeped in idiocy that I almost laughed at myself. If you drop a phone it breaks, right? Except that it hadn’t and I’d dropped it a million times before. Maybe this was just its time to die its little death or maybe this was a particularly horrible fall. Whatever it was, it happened and it was over.

Later, at the store, my conversation with the girl replacing my phone went a little like this:

Helpful Girl: So if you’re phone is backed up, I’ll delete everything on it and get you started with a new one.

Me: It is.

HG: Ok, is it backed up to the cloud?

Me:

HG: (concern on her face) What did you do to back it up?

Me: My husband plugged it into the computer and made a copy.

HG: Ok, if you’re sure you have a copy…

Me: I am…?

Did I mention that I’m a Business Analyst for an IT company? That I used to recruit for that same company? That I regularly talk with customers about what we can do for them and how we can ease their pain points with technology-based solutions? If you’re rolling you’re eyes at me, that makes two of us. But as I’ve discovered, working in technology isn’t all about the technology, it’s about the people. Read More…

In a recent project, we routinely modify a site, save the site as template and use the solution created to create new sites programmatically. This has been working well for the client for last six months and we haven’t encountered any issues. Occasionally, however, we encountered a problem which prevented us from deactivating or activating the solution in the solutions gallery. To overcome this, we deleted solutions from End User Recycle Bin and Deleted End User Recycle Bin views.

But this time around, every time I created the solution and created a site using this new solution and template, my new site looked bizarre! For instance, one of the libraries didn’t have the All Documents view and defaulted to My Documents view. But if you modified the URL for the library (from MyItems.aspx to AllItems.aspx), it would display the documents. Another difference was that the text from all content editor web parts on list pages were missing. The issue is displayed in pictures below using a test site. Read More…

The recent announcement about the general availability of Windows Azure IaaS comes with the following key enhancements:

  1. Remote PowerShell is enabled by default when deploying Virtual Machine using PowerShell.
  2. Availability of trial images such as SharePoint in the image gallery.

These enhancements make it easy to deploy a SharePoint Farm in an automated manner using PowerShell scripts.

The goal of this blog post is to walk you through such a script. Read More…

It was great fun presenting at Windows AzureConf 2013. I would like to thank the entire AzureConf team (Cory Fowler and Brady Gaster in particular) and my fellow speakers for their valuable feedback.

Click here to watch the video recording of my session on channel 9.

You can find recordings to all other sessions (including Scott Guthrie’s keynote) via this link.

Many of you asked me for a copy of the code I used during my session. You can find all my code snippets and slides here. (Of course this is just sample code so please treat it as such!)

Additionally, Pluralsight has graciously offered to make my newly-released Windows Azure IaaS Course for Developers available for FREE beginning Monday, April 29 at 9:00 a.m. MDT, and keep it freely available for 48 hours (ending 9:00 a.m. MDT on Wednesday, May 1). This is a three-hour course that goes in much more detail on the Windows Azure IaaS topics:

Windows Azure IaaS Course for Developers

Please feel free to send me additional questions via my Twitter account. Thanks!

Today I want to talk about a process we created for building out machines using Virtual Machine Manager (VMM) as part of our daily build process within Team Foundation Server (TFS).

As part of our nightly build process, we actually recreate the entire environment from scratch. We don’t use snapshots; we actually delete and provision a series of VMs. This may sound like overkill and I’ve seen other approaches that use snapshots and revert each night…and I think that’s great. Use what works for you. However, we wanted something that could not only exercise our code base, but also our scripts that we use for building our environment. In a way, this allows us to test both pieces at the same time.

At this point I should throw in the disclaimer that this blog post builds on one written by my colleague David Baber: Driving PowerShell With XML. We use the same XML-driven framework to build out our machines. In reality the process of removing and creating VMs is treated as just one “step” in our build-out process. Executions of other steps obviously follow, but this post is primarily concerned with standing up that environment. What happens next is up to you. Read More…