by
Sunil Jagani
2. April 2012 20:53
When we assist developers with new applications using the .NET framework, there is always a question of what is the best architecture for development? In most cases, we recommend the model-view-controller software architecture. The MVC architecture isolates the domain logic from the user interface, allowing for faster, more controlled development. MVC is under continued enhancements, providing more benefits with each new version.
Model-view-controller has three layers: the model, the view, and the controller. The model can be considered the data used in the program, the controller includes the class files with the business logic, and the view is simply the user interface. By isolating the model, the view, and the controller, development is faster, complexity is easier to manage, and there is more control over the behavior of the application.
- Managed Complexity – The separated nature of model-view-controller makes it easier to manage the complexity of large applications and keep it well organized. Developers are able to focus on one aspect of implementation at a time, such as concentrating on the view without depending on the business logic. Some functions and classes of MVC can even be auto-created to save time.
- Faster Test-Driven Development – With MVC, it’s easier to test applications than it is to test Forms-based ASP.NET web applications. This is because the separation of application tasks are all defined differently so they add no more complexity. Developers can test very short development cycles by writing a failing automated test case to define a desired improvement or function, then writing the new code.
- Rapid, Parallel Development – Because of the loose coupling of the MVC architecture, it’s easier for more than one developer can code at the same time on the application. If one developer is working on the view, another on the controller logic, and the last on the business logic in the model, the application can potentially be completed three times faster. Using other architectures, the three developers are more likely to step on each other’s toes. But with model-view-controller, they code independently and simultaneously.
- Full Control Over Behavior – The MVC framework is ideal for developers who want full control over the behavior of their application because MVC does not use a view state or server-based forms.
- Code Reuse – Since the controller uses different pieces of the model and view to create a request, many of these parts can be reused in other MVC applications. These reusable building blocks are chosen by the controller to handle specific processing (model) and display (view) requirements.
- JavaScript Integration – The model-view-controller architecture also integrates with the JavaScript Framework. This means, MVC applications can be made to work with applications outside web pages, such as PDF documents, site-specific browsers, and desktop widgets. It also supports asynchronous calls to such scripts which results to faster loading.
- No Viewstate or Postback Events – Rather than using Viewstate or Postback events to store the state of server controls on the page and to manage invocation of server side events, MVC instead uses different view engines to generate the markup that streams back to the browser client. The advantage here is that you can produce more standard markup and have greater control over what will be rendered to the client.
072edddb-6a49-43df-a8d7-a359677532d0|0|.0
Tags:
by
Sunil Jagani
21. February 2012 23:46
At AllianceTek, we often describe ourselves as business solutions architects rather than just software developers. This is because software alone does not necessarily provide any benefits to a business, and may in fact, be detrimental to its operations. Instead of just providing technology, our role is to determine how technology can best be applied to a business.
A business, or any other organization with a function, is essentially a collection of tasks to be performed at various times. As businesses attempt to leverage information technology to gain an advantage, they are basically trying to find a solution that saves time, money, and improves the quality of these tasks. Unfortunately, the reason a new IT solution may not result in these expected benefits is because the technology does not align the people, processes, and systems that make up a task.
All tasks – from paying a bill every month, to installing a new system, to assembling a product – require three parts. There is a human part that initiates it, a process with a series of steps, and a system that controls the frequency of the task.
When these parts of a task become misaligned, the result is lost time, money, and poorer quality. For example, if the task has no system to regulate the frequency, then it may not be performed on time. If a task has no process, then the person performing the task wastes time determining and re-determining how to do the task each time. And if a task has no human element, then the quality may suffer because there is no one there to follow through with it and recognize how to make it better.
Issues occur when one part of a task tries to do the part of another. Your workers should not have to be responsible for remembering how and when to do a repetitive task; these things should be handled by the process and system elements. Forcing workers to remember these things prevents them from contributing to an instance of the task and causes a business to stagnate rather than grow.
How do the people, processes, and systems become misaligned? One reason is because the task may not be clearly defined. Try this as an experiment: Take a routine task performed as part of your business and try to determine a way it can be automated. If this does not come easy, it may mean you have not clearly defined the task. Only clearly defined tasks can be automated, and automating a task forces you to define the task.
Recognizing patterns in the way a business operates and defining tasks from these patterns is largely how IT solutions can successfully deliver benefits. Once a task has been defined and its people, processes, and systems aligned, the task can now be delegated, automated, or outsourced. This empowers the people handling these tasks, because now they can focus on finding more efficient and less expensive methods of handling the task.
10c34145-1193-40c6-ba6d-b02140adf572|0|.0
Tags:
by
Sunil Jagani
10. February 2012 03:30
It’s not news to anyone at this point, but the prominence of mobile devices is still changing the way we work and live our daily lives. The smartphone becoming a ubiquitous presence in our lives and, according to a research study by In-Stat, over 65%, or over 200 million people, will have a smartphone or tablet device by 2015. Of course, due to this proliferation of mobile devices, I’m often meeting aspiring mobile developers with an idea for the next big app to penetrate the saturated mobile marketplace.
However, I have to keep remind such developers, who are migrating from desktop and web application development, that developing a mobile application requires some special considerations or they risk undermining their creative ideas. The following is a list of 6 important things mobile application developers should keep in mind when designing their apps.
- Choose your target device carefully – There are many mobile device platforms on the market, from the popular iPhone to the security-oriented BlackBerry. Whether its Android, Windows Mobile, or iPad, each device has its own audience that has expectations about what apps they want to see on that device. Before you begin developing, you need to choose a device, or devices, that have the same audience as the target audience of your application.
- Choose the right development platform – Now that you’ve chosen your target mobile devices, your next decision is what development environment you should use. Cross-platform environments like Mono, Phonegap, or Titanium save time by allowing you to develop for more devices at once, but give you less control over device-specific features, like user-interface. Developing just for a native app gives you complete control over the user interface and features of the device, but increases the development time. If you need more information, check out this decision tree to help you choose the right development platform.See our Article: Decision Tree ARTICLE
- Design your app for the mobile market – An application designed for a mobile device should be different than an application for the web or desktop. For example, mobile applications should be careful not to overload the screen with too many text or menu items and take advantage of mobile-specific features like touch-scrolling and buttons. Also, mobile users expect less waiting, so use animations to smoothly transition the user between screens. Finally, don’t forget to utilize the orientation feature and zooming if the user uses the appropriate gestures. There’s more information on developing a mobile application in this article.See our Blog: How To Design Applications For iOS
- Take advantage of device-specific features – The array of features offered on our mobile devices is always growing. Your app should take advantage of any device-specific features like GPS, cameras, etc., to offer the user a more robust experience.
- Identify your deployment environment – Apps can be developed for general use or for internal use at a company. Consider how your application is going to fit into the currently existing environment so the transition is smooth and seamless. For example, an app designed for a large company can take advantage of the iOS Developer Enterprise Program.
- Optimize Offline Compatibility – A connectivity interruption can erase sent data. App designers should utilize data storage so data can be stored on the application indefinitely until connectivity is restored and the data can be sent to the end-user.
212c6553-da28-4e64-b1df-9a1f5ec141ba|0|.0
Tags:
by
Sunil Jagani
2. February 2012 03:25
At the end of 2011, iOS has approximately a 250 million install base and, according to a study by Ericsson, this number will skyrocket to 1.24 billion iOS subscribers in the next five years. It’s no secret that the mobile market is growing, so it’s no wonder that desktop and web application developers want to tap into this new market.
But developers of these stationary platforms need to understand that there is more to mobile development that simply porting their existing applications as is. Mobile users have their own expectations of how an application should feel. They are less forgiving of unnecessary clicks, taps, and pauses to get to the information they want. Developers need to be aware of these new usability standards to compete in the highly saturated mobile market.
The following list explains 10 guidelines that desktop and web developers need to consider when converting their applications to iOS.
- More Icons and Optimized Text – Web users are used to following text to navigate an application, however mobile devices have less space for text descriptions. Instead, developers need to use more icons and buttons that are self-explanatory to guide the users. Think about using more graphical icons, white spaces, and only use text where it is appropriate.
- Fluid Animations Instead of Pauses or Flickering – Mobile users don’t seem to have a lot of patience and pauses and loading time on a mobile application can earn it low marks from them. The mobile application should always have a flow, and if there must be a pause, fill that time with an animation effect that fluidly transitions from one screen to another.
- Optimize Memory Management – Mobile devices do not have the same powerful hardware as a desktop computer so mobile applications should be designed to utilize a minimal amount of memory. Whenever objects are loaded or crated, they need to be released from memory when they are no longer on the screen so that memory can be reallocated. Fortunately, the design framework supports a lot of such memory functions.
- Respond to Gestures – Mobile applications need to be designed with touching in mind. Use big, clickable controls, buttons, and sliders to allow your users to interface fluidly with the app. Use scroll bars to try to show everything on the screen. Don’t use smaller fonts or use more buttons to avoid scrolling. Make sure you take advantage of orientation changes so that the app will change depending on which way the user is holding the device.
- Optimize the Controls – Again, mobile application developers have to contend with smaller screens and less memory, which means less room for buttons and controls. Try to consolidate the number of controls on the screen at once.
- Minimize Input Effort – Users don’t like to drag their fingers all over a screen just to get a reaction. Design your mobile app so a light flick of the fingers is enough to register input.
- Appropriate Use of Notifications – A common pet peeve of mobile users is the use of too many notifications. If there is a new version of an application, for example, don’t continue to remind the user of this. Only one notification the first time they open the app is necessary. If it’s an ecommerce app, you can use a notification to let the user know an order was made.
- Optimize for Devices – While, the iPhone and iPad use the same OS, they are not the same device. You must ensure that your application runs well on both devices, understanding the strengths and limitations of each.
- Focus Your App’s Purpose – Desktop and web applications have room for a variety of features, but the best mobile apps are targeted for just one purpose. Don’t weight down your app with extraneous stuff like advertisements, links to blogs, and other extras unless they are directly related to the purpose of the app.
- Make use of Common Controls – Users expect convenience and consistency and common controls make for better code reusability and easier maintenance. For example, if the application has a menu bar, then it should be used on each screen of the application and always reuse the same common file.
85e9526d-9c93-47ac-9415-c92768ee41ef|2|3.0
Tags:
by
Sunil Jagani
13. January 2012 02:02
While I believe SharePoint 2007 makes a pretty effective collaboration tool for most organizations right out of the box, it does require some customization to mesh with the unique environment of specific organizations. There is a common misconception that such customization requires additional coding, which many organizations are loathe to do.
However, thanks to the JavaScript Object Model provided with SharePoint 2010 there are many rich collaboration features we can add without a inputting a single line of server-side code. These features allow organizations to target SharePoint to their users on Internet-facing websites and obtain more value from their SharePoint solution.
Here are some of the features that can be enabled with the JavaScript Object Model provided with SharePoint 2010:
Web Parts – Using the XLST web part, users can search and view data just by configuring the required parameters.
Workflows - Visio content can be imported into SharePoint as workflows that manage the sequence of connected steps to complete tasks to ensure projects are going smoothly.
InfoPath Form – This nifty feature enables Drag & Drop controls and Design Form so you can manage your SharePoint content much more easily.
Reports – View and manage reports to keep track of across-the-organization information from a centralized location.
BI & Dashboard Capabilities – Allows users to monitor business metrics, analyze the causes of issues, and enhance business intelligence to improve decision-making.
CMS – Content can easily be added, edited, and searched. Users receive alerts when documents are changed and thousands of sites can be scaled at once.
Theme & Branding – Increase your online presence by adding your power point theme to your website through SharePoint.
User Management – Control which members can access and change what content through an easily configurable user management panel.
These zero code solutions are excellent for SMBs because they do not require the skill of a developer to implement. Any layman can add and configure these features through SharePoint's simple interface and deployment is easy. The best part is that the foundation server is free and the resource costs are very low, so SharePoint customization is cost effective.
cd245ba5-3573-434a-909a-098aed49de72|2|4.5
Tags:
by
Sunil Jagani
6. January 2012 01:47
One of the distinguishing characteristics of a successful organization is their ability to collaborate effectively. Some problems are too complex for an individual to handle alone but collaboration pools the skills, knowledge, and information of a group of people to make better decisions or produce better results. The right technology can be applied as a collaboration tool to enhance sharing, discovery, and collaboration within a business or organization. An effective collaboration tool can gather the best knowledge, skills, and talent from an organization together to reach a goal that would be unattainable if these abilities were used independently.
As one of the most well-known technology collaboration solutions, much has been said about Microsoft SharePoint. SharePoint comes recommended as one of the best collaboration tools available as it allows for collaboration in these seven different ways:
- Access & Share Data Any Time-Anywhere – SharePoint can be accessed through a browser, Microsoft Outlook, Grove 2007, and even with a Windows Phone.No need of independent xls sheets& just add or edit data in common list.
- Plan Important Dates and Reminders – Important meetings and events can be added to a calendar and viewed by team members, keeping them apprised of upcoming events, meetings, deadlines, and milestones.
- Manage Your Team’s Tasks – Tasks can be assigned& track to individual members or to teams
- Discuss and Discover – With boards and discussion forums, team members can share ideas in an online social environment to improve team cohesion and make communication more fluid.
- Report enterprise history & Trend data – Use simple query or advanced operators to easily search for files and monitor trends across your organization.
- Joint data editing & viewing capabilities– Users can be view& edit documents synchronously in real-time together.
- Collaboration auto discovers – Data Integration by using BCS with database or with other systems.
SharePoint is preferable to other collaboration tools available because it can be set up to meet the unique needs of an organization without any coding. Customization can be achieved through configuration while other collaboration tools often require the user to write additional code to achieve the same ends.
There are many other collaboration-rich features that can be enabled with SharePoint, many of them available with the free Microsoft SharePoint Server and Microsoft SharePoint Foundation add-on. Not all of these features are necessary for every organization, however, and I am a firm believer that unnecessary complexity leads to inefficiency. SharePoint requires some organization-specific customization to better realize its full potential as a collaboration suite.This is why AllianceTek assesses each organization independently before developing a customized SharePoint solution that best integrates with the organization’s unique needs and methodologies.
ffccc45f-07c7-4bd4-be0a-f684661a1d6b|0|.0
Tags:
by
Sunil Jagani
16. December 2011 01:10
I often say that finding technology solutions for business practices often comes down to applying technology to make existing business processes faster, easier, and more accurate. A common question clients ask is how they can use a Customer Relationship Management solution to better communicate with their customers and find new ways to market to their client-base. But when choosing such a CRM solution, there are dozens of available options, from Microsoft CRM to Sugar CRM. The question becomes, how does a business choose which CRM solution is right for them? Other businesses may have already attempted to implement a CRM solution but lack the processes to effectively use it.
Without surprise, my answer (as it often does) comes down saying that it depends on the needs of the individual business needs. A successful CRM should provide marketing opportunities for a business, collect customer data to better understand your customers, and, most importantly, leverage that knowledge such that it results in measurable sales results. Essentially, an implemented CRM should increase customer satisfaction while decreasing the number of actions required to manage customer relations. But an incorrect or poorly implemented CRM often ends up doubling the number of actions.
A CRM needs to capture key data from your customers. This data must be accurate and should be centralized and accessible from one location. The CRM should generate the right alerts and notifications that can be easily sent to customers. Integration is always important, so the CRM solution must be able to easily integrate with the existing systems of an organization, or at least be able to export data to the other system. Having unwanted fields and unnecessary features in a CRM often causes more harm than good, so keep it simple. The best CRMs will automatically show trends, and display customer analysis data and graphs.
Now, choosing the right CRM for your business often mostly depends on the size of your business. A small business usually does best with a customized solution that meets their smaller scope without adding extraneous features that bog down the system. A medium business might want to use an existing CRM framework with some minor customization. For a large business, I would recommend using one of the major CRM software solutions such as Salesforce.com or Microsoft Dynamics. These large scale solutions are designed with large businesses in mind and require minimal customization.
An effective Customer Relationship Management solution should inevitably increase sales without increasing overhead. If you find your CRM solution simply adds complexity without benefit, you may be using a solution that is not right for your business. But don’t give up hope, the right CRM solution for any business exists – it may just take some tweaking and customization. AllianceTek helps small and medium scale business choose, customize, and implement a CRM solution by focusing on core processes of sales and marketing and decreasing their process overhead.
a43b16e7-7bcc-4f4e-bd6c-a00d03f76b4a|0|.0
Tags:
by
Sunil Jagani
9. December 2011 06:04
E-learning is not new, not by a long shot. In the last decade it has become a ubiquitous method of educating, training, and teaching within and outside of organizations. However, lately I have come across a lot of people who seem to misunderstand what e-learning is all about. Many are using e-learning as simply a way to publish and share material over the web. If this sounds like your application of e-learning, then you’re missing on the real benefits of the concept.
What e-learning essentially is interactive learning material – two-way education with input and feedback between the teaching software and the learner. This is different from self-educated learning from electronic documents where the learner simply reads information or watches media and attempts to glean education from it. I believe that to truly have an effective e-learning solution, it needs to embrace three concepts: education, communication, and collaboration.
Education Studies have shown that audio and visual tools better engage the learner and this should be an essential part of an e-learning solution. The latest technologies, such as HTML5, Flash, Silverlight, have made great strides in e-learning by transforming content into audio, video, and animated effects. To help educate, an e-learning solution should have user feedback features such as tests and quizzes that automatically generate graphs and reports to help the learner track their progress.
Communication Learning is never one-sided, a teacher or educator needs to be in touch with their students and understand how they are progressing. I believe interactive features that allow learners to ask experts online greatly benefits the learning process. Users should be able to view and register for events on a calendar and receive interactive reminders and alerts that keep everyone on the same page.
Collaboration Learners not only can benefit from instructor feedback, but from each other through information discovering and sharing. An effective e-learning solution should have collaboration features to enable user-to-user communication and collaboration. For example, users should be able to upload and share content and communicate through email or a messaging system. I’ve noticed users greatly benefiting from e-learning solutions that integrate social media networks like YouTube and Facebook where they can upload and share content.
If you’re going to implement an e-learning solution (and I believe every business, regardless of size, should), then why not use one that offers the complete package of education, communication, and collaboration?
AllianceTek.com has more information regarding the features of such a robust e-learning solution here.
dbd320b1-f64e-4f6d-98b4-d22a03fb95fa|0|.0
Tags:
by
Sunil Jagani
2. December 2011 05:46
After performing countless assessments of business operations, I have become very sensitive to the inefficient processes that can be improved with better organization or automation. While most businesses are oblivious to these minor inefficiencies that only waste a few seconds each time they are performed, I cringe when I think about how many work hours are lost over the course of a year.
For example, many small to medium businesses are still within the grip of Microsoft Excel as their default collaboration software. The organization will pass along the same xls document among several people through email, each adding their own updates and modifications in isolation. Countless emails are exchanged as project members attempt to grasp the most current version of the document. Chaos ensues and inefficiencies are compiled.
These kinds of organizations typically also lack any kind of automatic reminders or task management systems. When a task is given by one member to another through email, the first member has no way of knowing if the receiving member has received the task, began working on the task, or finished the task – at least not without exchanging more emails. A project leader may manually email members to remind them about an upcoming meeting, but this consumes even more time. This is especially difficult if project members are in different time zones.
If applied correctly, SharePoint is a great collaboration tool for any business of any size. Managers have to keep track of hundreds of documents that may be spread throughout an organization. But by installing a SharePoint site, they can import their content so everyone can view and update spreadsheets and reports from one central location.
SharePoint is so effective because it combines people, processes, and systems. An example of a people dependent process is a manager asking the accountant to make sure the credit card bill is paid each month. If you add a process to this example, then the manager is asking the accountant to make sure the credit card is paid by the 13th of each month. But with SharePoint, you also add a system. Here, the accountant received an automated task on the 11th of each month that reminds her to pay the bill by the 13th. The task is added to a queue and every morning the accountant receives their list of current tasks.
Tasks can be assigned directly through SharePoint and sent via email to the appropriate member automatically. Through the SharePoint interface, members can see at once what tasks others are working on and the progress of these tasks. Automatic alerts and tasks can also be configured with workflows. It’s like having another manager but without the overhead of hiring a new employee.
SharePoint is different from other such collaboration tools because it is readily available. It only needs to be installed and set up once to access its features. SharePoint syncs with Outlook and other Microsoft products so data flows easily among communication and software tools.
dfed32aa-a291-4af8-8036-77899ccf9bed|2|5.0
Tags:
by
Sunil Jagani
25. November 2011 00:18
Are you realizing the potential of your ERP?If so, you are one of the few according to a recent Accenture survey of 300 senior IT professionals
at the largest 2,000 companies in North America and the United Kingdom: • 31% use their ERP system in half or less of the organization • 64% use their ERP system’s core functions • 19% have fully integrated their ERP system with customer systems • 50% bought ERP systems that where they only needed half of the systems’ capabilities • 20% don’t make use of all functionality due to lack of training Where do you fall in these percentages?
bfd0eb24-e2fe-4398-93c1-80f8a7c1843d|0|.0
Tags:
|