BusinessContinuity_0.jpg

NetConnect Blog - Your Resource For IT Tips, Tricks and News

Today is a Good Day to Code!

Posted by Paul Staszko on Mar 25, 2016 10:00:00 AM

What is the best day to become a programmer? It was, is, will be yesterday, today, and tomorrow.

Respectively. I tend to be a cold hard light of the day realist about most things, but one of the few areas about which I am perpetually optimistic is software programming. As software programming is a broad topic, I’ll focus on the areas of options, ease of use, and reach. Let’s imagine how this applies to a fictitious novice jumping into software development.GDAGX2JKI4.jpg

Like any craft where you repair something that is damaged or create something out of nothing, having the right tool for the job is essential to success. As software interacts more and more aspects of our lives, programmers need ever expanding options for languages, tools, and best practices. Thankfully, we’ve got them. The sheer number of programming languages alone can seem a bit overwhelming on the whole, but if there is a job to do, someone has probably already done the hardest parts of it for you.

With even the vaguest of Google searches, our new developer will be off and running. The currents of IT support websites are well established and will insure a novice will end up with some useful tools and heaps of guidance. Sites like StackOverfow, its parent StackExchange, and CodeProject have made a permanent stamp on free and open peer support. Tutorials, essays, answers to extremely specific problems, they are all there for the taking.

The languages and the tools available also continue to mature and become better understood and supported by their respective communities. This is an easy point to overlook, but technologies live and die on the communities that form around them. For those who like something to hold, it’s very easy to find amazing books on software programming. I could hardly overstate how valuable the books on my bookshelf have been.

At the risk of being the prototypical cranky old man, kids these days have no idea how hard it used to be. I don’t think they are missing too much though. You can learn a lot by struggling on your own, but success and a helping hand are pretty nice too.

photo-1417733403748-83bbc7c05140.jpegMy final argument that today is the best day to become a programmer boils down to one word. Reach. Broadly speaking, I mean how far a piece of software can go, the amount of work a bit of software can accomplish, and how fast it can do it while continuing to grow are truly mind boggling. Small computers are all around us in the form of, well, pretty much anything these days. A crafty programmer is able to extend their reach into those devices to make them work more to the programmers liking. Come to think of it, I don’t see why my washing machine couldn’t text me when it’s done. It doesn’t have an alarm. Maybe this weekend…

To go along with the swarm of small computers surrounding us, internet services are available to be harnessed. Telecommunications, video, social media, ecommerce. All of these areas become toys for a developer to mix and match. More than ever before, a programmer’s digital world and physical world can be bent to their will. My friend wants to order cat food via a text message. I’m 90% of the way there.

The Interactive Team at Network Center, Inc. has the knowhow to get the job done. Even more importantly, we are excited to find new and better ways to exceed our customer’s expectations on time and on budget.

Today is a good day to code!

 

Topics: Developers, website development, software development

The Power of Entity Framework and LINQ

Posted by Lucas Michels on Sep 26, 2014 3:00:00 PM

Entity Framework and LINQ have been two amazing tools that I have come to love when creating and editing many different types of applications. The power of these tools allows for much faster creation of coding logic, plus some built in protection from malicious attacks. Both of these mean a savings in both time and money for us and our clients. To see some possible reasons as to why you would want to use this framework or have it put in your program, I will first give some background on what both Entity Framework and LINQ are.

What is Entity Framework (EF)?
Microsoft defines Entity Framework as “The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping (ORM) framework that enables developers to work with relational data as domain-specific objects, eliminating the need for most of the data access plumbing code that developers usually need to write. Using the Entity Framework, developers issue queries using LINQ, then retrieve and manipulate data as strongly typed objects. The Entity Framework's ORM implementation provides services like change tracking, identity resolution, lazy loading, and query translation so that developers can focus on their application-specific business logic rather than the data access fundamentals.” This basically means it is an ORM framework meant to simplify the database connections and saving of information on the database. It also allows for an easy way to work with the data objects once they are returned from the database.

What is LINQ?
Microsoft defines LINQ as “a set of features introduced in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic. LINQ introduces standard, easily-learned patterns for querying and updating data, and the technology can be extended to support potentially any kind of data store. Visual Studio includes LINQ provider assemblies that enable the use of LINQ with .NET Framework collections, SQL Server databases, ADO.NET Datasets, and XML documents.” In other words, LINQ provides for a syntax or a way of writing code that allows us to work more easily with objects. This tool is especially handy when working with big objects and redefining results.

Using Objects
When setting up a project in Entity Framework (EF), you can either do a ‘code first’ approach or a ‘database first’ approach. Most of the time we have done a database first approach, which means setting up the database structure for a given application. Then we can create the connection with the entity framework model and pull in the database structure into the EF. This allows for quick and easy creation of data objects within our applications. We don’t have to guess as to properties of the individual item because the objects are created in EF. When opening this data context in the code, we get access to all the objects and their properties that are created in EF. In most cases we are no longer required to form huge strings for SQL, but instead could use smaller lines of code. Below is a small example of an incomplete database, but in it we can see the objects created and the different properties associated to them as well as the links they have to other tables through foreign keys.  

Entity Framework

Simplification of Accessing and Saving Information
Through EF we have created our objects and have loaded in we can now use and update the information. To create new records of information in the system, all we need to do is declare a new type of the object, tell the context we are inserting it, and call the save changes. Any other objects that are attached to this object before the save should they be new would also be inserted. Our database open and close connections are also taken care of for us. For an example let’s look at the code below.

Entity Framework 

Within these couple of statements I have opened a connection to the database, grabbed a user with the First Name of Lucas and the Last Name of Michels. I have then updated his pin number and saved it back to the database. This saves us from having to worry about connections not getting closed and using up extra memory in the application as well as making a nice easy to read logic to follow.

SQL Injections Protection
EF also has built in protection against SQL injections which is strings of sub-queries which when put into another SQL command will perform another task. Using the example given above, should we replace the “Lucas” string with a variable that is gotten from user input, we would also have to check that input against an SQL injection. EF in the given example above does this for us. This cuts down on the amount of coding we need to do in order to help make our applications safer from these sorts of malicious attacks.

Summary
Entity Framework and LINQ are very powerful tools. In this section we have just touched on a couple of the reasons as to why they can save time and money when developing applications and make them safer.

Topics: Technology Solutions, NetWork Center Inc., Application Development, Developers

5 Reasons You Should Use jQuery

Posted by Dane Petersen on Jun 17, 2014 3:00:00 PM

What is Jquery? The official jQuery statement is: “jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.” It is the most popular cross-platform JavaScript library in use today and was designed to be simple and easy to learn. It also simplifies the client-side HTML scripting. Query is free and open sourced under the MIT License. It was released in 2006 by John Resig and is currently being developed by Dave Methvin. It is used by some of the most visited sites on the Internet and helps developers by decreasing the amount of effort and time. What would take 20+ lines of code in JavaScript can be reduced down into say 5 lines with jQuery.

  1. Jquery is easy to learn, has a very small learning curve, and is very well documented. If you have some knowledge of HTML, JavaScript Jquery should come easily.

  2. Jquery works well with old and new technologies such as HTML 5 and CSS 3. 

  3. Jquery can reduce the time and effort for developers. The following is an example of code differences between JavaScript and jquery. To see a live demonstration of the code below visit https://www.netcenter.net/quick-jquery.html.

    JavaScript

    javascript screenshot (3)
     
    jQuery

    jQuery

  4. Jquery allows users to create animations quickly with less of a learning curve than Adobe Flash. Jquery uses markup technologies such as CSS, HTML, JavScript and AJAX that all work well together. A developer can use these to create effects such as drop down menus, hiding elements, fading elements in and out, and sliding elements around the page. These are just a few of the many effects provided by the jQuery library.

  5. Jquery Mobile allows you to have the same functionality on mobile browsers as you would on the desktop. It also has UI options which enhance a user’s experience on a mobile device. A good example would be the use of an accordion, which takes content and compartmentalizes them into selectable options.

There are other good JavaScript libraries out there such as minified.js. “Minified.js is a client-side JavaScript library that's both powerful and small. It offers jQuery-like features (DOM manipulation, animation, events, HTTP requests) and utility functions (collections, date & number formatting, date arithmetic, templates) with a single, consistent API."

Deciding to use a JavaScript library like jQuery is up to the developer and the project demands. Jquery is quick and efficient while reducing developers’ effort and time, and is compatible with older browsers while still working with the newest technologies. Contact NetWork Center, Inc. today if you have any questions.

Contact Us Today!

Topics: Technology Solutions, Mobile App Development, Mobility, Application Development, Developers

Why CMS is Important for Your Business

Posted by Dane Petersen on Feb 10, 2014 4:20:00 PM

cms chartFirst off…what is a CMS? The simplest way to explain it is that it’s an application that runs on the web which allows the original content creator to add, edit, and manage content on a website. This allows a user with limited development skills to manage a web page or an entire site without ever having to know or understand programming for the web.

In the early days of web development most web pages were static and not dynamically driven. The site would be written and coded all at once, so the developer would code the menu, links, images, and content into the page(s) individually.

This meant that if you wanted to add or remove a link from the main menu the developer would have to go in and manually edit the menu on every individual page. This would be very time consuming and costly.

Nowadays, customers expect a higher level of service than ever before, making a content management system (CMS) more important to keep your content current.

Why should you consider CMS? Again, first and foremost, the content management system allows the content creator to:

  • Enter content, save it as a draft online, and return to it at a later date to publish it.

  • Create content in advance and set automatic times for the content to publish live.

  • Style content with a WYSIWYG editor similar to the word processor on your computer.

What are some other features CMS provides besides content management?
  • Security

  • SEO optimization

  • Automatic RSS feed of your content

  • User Permissions

  • Workflow and notifications

  • Create a complete ecommerce solution

    • Displaying items for purchase to customers

    • Shopping cart engine

CMSWhich CMS is right for you? There are Open source and proprietary systems. Open source solutions are developed and maintained by a community of supporting developers. Open source options are typically free and are supported by developers who are constantly expanding out the functionality of the software.

A proprietary system is developed by a company and licensed out to you with everything you might need. The only drawback is when you run into a feature it does not provide, developing that feature could be very costly, or not possible at all.

There are many content management systems out there, but a few of the top options to consider are:

  • Drupal – (the CMS of choice here at Network Center, Inc.) Arguably the most powerful and robust of all the open source options. Drupal is scalable from small websites to very large enterprise level applications. Our government trusts Drupal’s security so much they rebuilt http://www.whitehouse.gov/ from the ground up using Drupal.

  • Orchard – A free and open source option provided by Microsoft. It is rapidly growing, but many developers believe it is still lacking many of the required features other systems provide.

  • WordPress – Originally developed as a blogging application, but is fast becoming another strong option to consider when building interactive websites. Ideal for simple websites like blogs and news sites.

  • Joomla – Considered the middle man. It provides more robust features than WordPress, but isn’t as scalable as Drupal on an enterprise level. It is designed to perform as a community platform with social networking features.

In the end, using a CMS is really a no brainer. Rather than relying on a developer to maintain your site for you, take control of your own content and make your website your own. If you have any questions about CMS, please contact NetWork Center, Inc. 


Contact NetWork Center, Inc.

Topics: Technology Solutions, NetWork Center Inc., Developers

Building Applications in the Cloud

Posted by Joe Dunnigan on Jan 10, 2014 3:00:00 PM

smart phone application development 1 resized 600In the traditional application development lifecycle, your development team and server infrastructure team tend to be two distinct entities. Developers write code in their environment, then provide application and database files to the deployment team to push to staging and production servers. The two teams work together to define application requirements for the server infrastructure, which is then built to those specifications. The ability for a developer to quickly and easily provision hardware resources for testing application deployment and usage scenarios can be difficult and cumbersome. Iterating through design and runtime requirements can be a tricky process, and changes can be difficult to implement.

Planning for real world use of your application, and building your app to scale easily, requires planning from the beginning of development to ensure you can take advantage of scaling web servers, database servers, and the various other resources that make your app run.

Enter cloud computing resources and tailored cloud development environments. In recent years, a number of services that allow quick provisioning of compute resources have become available. These services provide an abstracted layer that allows application code to be quickly and easily deployed to managed platforms without worrying about underlying server structure. They are removing a layer of complexity that allows developers to quickly prototype and deploy their applications with immediate results.

For the purpose of this article, I will explore a few well-known cloud development platforms, including Amazon Web Services, Windows Azure, Google Cloud Platform, and Google App Engine. Each service provides various functionality that you can utilize to quickly prototype your application and shorten time to market.

aws resized 600Amazon Web Services is now a well-known platform with many different uses. Some of the biggest names in online services, such as Netflix, run their services on the Amazon cloud. For application development, AWS allows a developer to spin up server resources in minutes, or deploy pre-defined application environments to cover scalable web, storage and database needs. AWS also includes a free usage tier for new subscribers. If you have an Amazon account (or even if you don't), you can head over to http://aws.amazon.com and sign up for AWS. After sign up, you can create a new micro instance web server that you can run free for a year.

If you would like further abstraction on your Amazon cloud environment, you can deploy a preconfigured cloud setup with AWS Elastic Beanstalk and deploy your application code through GIT, or using tools in your development environment, such as Eclipse or Visual Studio. This allows you to concentrate more on your code and less on a server environment. Elastic Beanstalk supports applications written in Java, .NET, Node.js and more.

windowsazurelogo resized 600Windows Azure is still a new platform to some, but has been around long enough that getting started is a simple process and integrates well with your development environment. Visual Studio includes a number of integrations to allow rapid deployment to Azure, and you can opt for preconfigured scalable environments, or simple server instance configurations that you can manage on your own. Azure should be a consideration if you are developing a .NET or similar Windows server-based application.

gce resized 600Google has only recently made its Compute Engine service available that is built on the same infrastructure that powers Google's services. It is not as feature-rich as Amazon, but provides excellent API resources and competitive pricing. It’s a cloud platform to watch.

Far more interesting from Google's offerings is Google App Engine. The App Engine does the best job of abstracting hardware and compute resources from the developer, allowing application code to be quickly deployed to the App Engine environment, and taking care of all application, storage and database scaling in a completely transparent manner. In addition to scaling compute resources, App Engine pricing scales with the number of uses on your app, making it ideal for startups wanting quick and cost-effective options for getting their app to market. Snapchat and Rovio (Angry Birds) are just two examples of well-known startups that are taking advantage of Google App Engine to power their apps.

googleAppEngineLogo resized 600Getting started with Google App Engine is also quite painless. You can test drive the service at the Cloud Playground in a number of languages, and can test your app for free, as long as you stay under daily quota limits. Google provides plugins to popular development environments, such as Eclipse, to assist in deployment and utilizing App Engine APIs. This makes building Google Web Toolkit and Android applications even easier, as these features are part of those platforms' toolsets.

There are certainly many options available to today's developer, and more arriving every day, but evaluating a few and determining if they are a good fit for your team should be at the top of your to-do list for 2014. If you're a startup and looking to get your app out to market, then this will likely be the path you choose. Contact NetWork Center, Inc. if you have any questions.

Contact NetWork Center, Inc.

Topics: Mobile Apps, Application Development, Developers, Cloud computing

Subscribe to Email Updates

Recent Posts

Posts by Topic

see all