What is VB.NET? What is C#?
Visual Basic .NET and C#, both of which are now part of the .NET environment, are two of Microsoft's flagship programming languages. They can be used to create interactive websites as well as a variety of applications for use both on and off the Web.
What is the .NET Framework?
Simply speaking, the .NET Framework is Microsoft's software development platform. Running on Windows-based platforms, the .NET Framework provides the tools and libraries developers need to build applications and services easily, quickly, and securely.
For example, you might implement a Windows Communication Foundation (WCF) service that facilitates communication between applications in the event that you want to use more than just HTTP with your traditional web services.
VB.NET? C#? What's the difference?
While C# and Visual Basic .NET (VB.NET) are the two primary languages used for applications built using the .NET Framework, there are some crucial differences between the two (though the biggest ones are related to syntax, with the gap closing more and more with each passing day).
These .NET languages are similar in function but differ significantly in execution. It's often assumed (incorrectly) that C#.NET has capabilities that exceed that of Visual Basic, but the fact is that both languages are capable of creating powerful content and applications.
About Visual Basic .NET (VB.NET)
Launched in 2002, VB.NET (which is strongly influenced by the BASIC programming language of the 1960s) is the successor to the original Visual Basic language.
It is an object-oriented, strongly-typed programming language that allows developers to build apps for Windows environments.
Benefits of Visual Basic .NET
Visual Basic .NET (based entirely on the current version of the Visual Basic language, first released in 1991), is designed for ease of use.
VB.NET uses a combination of components (visual objects manipulated in a drag-and-drop environment) and hand-coding to create everything from simple Graphic User Interface (GUI) applications to complex applications, ActiveX controls, or interfaces for database management systems.
As time goes on, you will see fewer and fewer BASIC-related influences and a convergence toward C# (and other more modern programming languages).
As its name suggests, C# is based on the C programming language, which was developed by Dennis Ritchie at Bell Labs (or AT&T) in the 1970s.
C# (first released in 2001) is more code-oriented and can be used to create powerful applications with maximum economy of resources.
Whereas VB.NET is generally used to build large applications in the online arena, C#.NET is valuable for Web developers who need to police their code and fine-tune their applications and sites.
Features of C#
C# is a highly-expressive, general-purpose, object-oriented programming language.
If you have experience with C, C++, or Java, you will find C# very familiar.
In short, C#'s syntax simplifies the complexity of C++ while also providing powerful features including:
- Nullable value types
- Delegates, which enable type-safe event notifications
- Lambda expressions (or anonymous functions that can be passed as arguments or returned from function calls)
- Direct access to memory
Benefits of C#
Because C# supports generic methods and types, you get increased type safety and better performance.
For example, Language-Integrated Query (LINQ) expressions mean that the strong-typed query is a first-class language construct (as opposed to the more traditionally-used method where simple string queries against data were not checked for type-related issues).
Fun fact: The name, C#, includes the pound sign, which can be viewed as a ligature of four plus symbols in a two-by-two grid.
This pays homage to the fact that C# is, in some ways, an increment of C++, another commonly-used programming language.
Which Language Should I Use?
While there are certainly technical differences between C# and VB.NET, which one you choose is likely to come down to the resources available to you.
You'll commonly hear developers saying things like, "Oh, I use C# since I came from a C background" or "I use VB.NET because I have a Visual Basic/Basic background."
There are certainly differences in how the two languages run, but there are few cases where you need to get into such nitty-gritty when it comes to determining which language is best for your needs.
The two languages are syntactically different, but generally speaking, there is a 1-to-1 correspondence between what you can do in C# and VB.NET (and vice versa).
Where Does ASP.NET Come In?
ASP.NET is the web development model that contains the services you need to build web applications when working with the .NET framework.
This model allows you to code your .NET applications in any .NET compatible languages, include VB.NET and C#.
The ASP.NET model consists of three frameworks for creating web applications:
- ASP.NET Web Forms
- ASP.NET MVC
- ASP.NET Web Pages
Which Should You Choose?
The option that you choose depends on your audience and type of application.
Generally speaking, ASP.NET Web Forms is a good option for those who are interested in rapid application development.
ASP.NET MVC is targeted to developers interested in separating a web application's business logic layer from the presentation layer (and following patterns and principles like test-driven development, separation of concerns, inversion of control, or dependency injection).
And, finally, ASP.NET Web Pages is a good option for those who are looking for simplified web development a la PHP.
However, do note that the three frameworks are not 100% independent, so choosing one does not automatically preclude also choosing another as well.
When working with VB.NET and C#, you will likely do so using Visual Studio, Microsoft's integrated development environment (IDE).
What is Visual Studio?
Visual Studio is a full-featured IDE that allows you to develop apps for any Windows environment easily.
You get code editing functionality, an integrated debugger, code profiler, forms design (useful when you are building GUI apps), and web, class, and database schema designers.
Visual Studio is an extensible IDE, so you can add plug-ins that enhance the functionality at almost every level.
For example, you can add support for the version control system (such as Subversion or Git) that you are using or new toolsets like visual designers.
In addition to supporting C# and VB.NET, Visual Studio supports 36 different programming languages, so it is likely you will find support for all your needs with just this IDE.
Getting Visual Studio
Visual Studio is a proprietary product (there are three different versions, each with a varying set of features at varying price points) that you can purchase, though you can use the Community edition free of charge.
The Community edition does not come with the limitations former editions of Visual Studio Express (which Microsoft used as a trial) had.
Visual Studio Code
In 2015, Microsoft released Visual Studio Code, an open source, extensible source code editor. This is not a variant of the paid Visual Studio product.
Why You Need .NET Hosting
Because the .NET Framework and all its associated components are proprietary Microsoft products you will need a web hosting plan that offers a Windows environment (or, if you have chosen a VPS plan or dedicated server, the option to install Windows).
Essentially, you want what web hosts call "ASP.NET Hosting."
For those who choose a Windows environment for their Web server and hosting, Microsoft's ASP.NET environment is a powerful tool for creating both professional, engaging websites and Web-based applications.
Plan to Do Custom Programming?
And if you develop your own .NET applications/ASP.NET applications or do any of your own custom programming in the ASP.NET environment, you'll most likely want to choose a host that supports two of Microsoft's most important languages: Visual Basic .NET (also known as VB.NET) and C#.
C# should be a default if you're working on a Windows platform, but check with your host just to be sure).
Windows Hosting Can Be More Expensive
Support for both C#.NET and VB.NET requires a Windows operating system (OS), so you'll need a Windows hosting package to take advantage of their capabilities (as we have already mentioned).
Windows hosting is, generally speaking, slightly more expensive than comparable Linux-based hosting, so you may want to budget accordingly.
Do you Need Licensing?
Also, your host may include native support for ASP.NET applications and components as part of your hosting package, but you'll likely be responsible for purchasing and downloading the licenses required to use the latest version of VB.NET or C#.
If you are using Visual Studio, you may want an additional license to run this suite on your server for rapid coding and debugging purposes.
With that said, what are some more specific items you should take into consideration when looking for a hosting plan?
Read on to find out.
There are many web hosts offering ASP.NET hosting at the shared level, so if you are just getting started or you have a very limited budget, this might be the option that is best for you.
However, read the terms of service provided by your web host carefully, especially if you are choosing a plan based on it offering things like unlimited bandwidth and disk space.
Generally, this means that there is no articulated limit, not that there is an unlimited allocation of resources for you to use.
This is a concern since the .NET Framework and the tools you need to manage what you have built can take up a fair amount of your storage space.
Moreover, depending on the type of web application or website you ship, your web host might deem your products more appropriate for a higher level of service, such as VPS hosting or a dedicated server.
Should You Choose VPS or Dedicated Server?
However, if you decide to opt for a VPS plan or a dedicated server, you will need to make decisions on what to buy - you will have to articulate explicitly what resources you need for your website (especially if you are purchasing hosting from a more traditional provider, such as GoDaddy, BlueHost, or InMotion, since your limitations are influenced by the physical infrastructure of the web host).
|Cost||Starts at $2.99||Starts at $3.95||Starts at $5.99|
|Support||Yes; 24/7||Yes, 24/7||Yes, 24/7|
|Up-time||99.9% guarantee||99.99 guarantee||99.97 guarantee|
|Special features||free domain w/annual plan||unlimited disk storage||unlimited email|
Cloud-Based Hosting is Also an Option
One way of working around this need to identify resource needs before you really know what your traffic levels are like is to opt for a cloud-based hosting plan.
Because cloud-based plans offer distributed systems, you generally get the ability to scale up and down as necessary.
Such changes can sometimes be made by yourself using the provided control panel and go live immediately.
Furthermore, you are only paying for what you need. You will not have to worry about paying too much or too little for your hosting plan.
When building ASP.NET or .NET applications, you will most likely be using Microsoft's SQL Servers.
Because of this, like most of Microsoft's products, is a proprietary offering, use of SQL Servers may set you back when it comes to cost.
With Linux-based hosting, MySQL, an open source SQL environment tends to be the default option available.
You can certainly use MySQL with your apps, but if you want to stick with an all-Microsoft environment, check with the hosts in which you are interested what the policies are and what the costs will be if you choose to use SQL Servers.
Extra Hosting Features
Depending on the type of application you ship, you may need to look for a host that offers features and functionality supporting your application.
For example, if you are running an e-commerce site, you might check to see if your web host offers things like private SSL certificates, dedicated IP addresses, and built-in online store management software suites.
If you need email, check to see that you get such privileges. If you do, ask your host for details about its SMTP server and any limitations you might reach when it comes to email usage.
While ASP.NET (and all things related to the .NET Framework) are proprietary Microsoft offerings, you get reassurance that the tools and solutions you are using have been rigorously tested.
This is the upside compared to using free or open source tools - you pay for what you use, but you certainly get what you pay for (if not more).
24/7 Support = Peace of Mind
Your development tools are supported by Microsoft, but you might also want to check what level of support your web host offers when it comes to your hosting package and the infrastructure on which your website and web applications are hosted.
When problems arise, you may need to enlist the help of both Microsoft and your web host, so it is important that you pick a host that offers quality technical support and customer service.
While it is by no means essential, you may consider strongly favoring web hosts that offer around-the-clock support.
This means that you can reach someone, even if you see a technical issue at an inopportune time.
A Few Recommendations for VB.NET Hosting
Microsoft's products are commonly used, so you will have no problem finding a host that meets your needs.
However, some web hosts are certainly better than others.
The following is a list of companies I recommend you look into as you search for the best plan for your needs.
When it comes to hosting for your .NET and ASP.NET websites and web applications, I give a nod to A2 Hosting.
This hosting company, which strives to put out developer-friendly products, offers everything you need to get up and running at very reasonable prices.
A2 Hosting's Windows hosting options are available at the shared, reseller, and VPS levels (and obviously, if you choose a dedicated server, you can install Windows Server as your operating system).
If you decide to opt for a shared hosting plan, we recommend springing for A2's higher-end Turbo servers, which will get you additional resources to ensure that your web apps and websites perform as well as possible.
However, with the more premium options, such as VPS and dedicated servers, you can easily configure the environment you need for all your .NET projects.
Depending on the technical level of your team (or the bandwidth they have to manage your projects), you can purchase additional consulting services from the A2 team.
However, even if you don't, the A2 support team is excellent and you will find a helpful person ready to answer your questions or help you with a task 24/7.
Amazon Web Services (AWS)
Amazon, commonly known as the Everything Store, also owns a thriving business offering web-related solutions.
While the products it offers are geared toward hardcore developers and therefore come with steep learning curves when it comes to learning how to use the various offerings, we have to give the company a nod when it comes to .NET hosting.
Amazon offers new AWS accounts the opportunity to test out its products free of charge for the first year (though you should check to see if the few limitations it places on such test accounts apply to you).
Once you move your websites and web applications to a production environment, you are on a pay-as-you-go model.
Essentially, this means that you are getting cloud-based hosting at a very economical price.
You do not have to pay for resources that you do not use, but if you ever see any traffic or resource-use surges, you can easily scale up to meet the demand. Because AWS is such a large company, you are unlikely to ever hit the resource maximums inherent in a web hosting plan.
In addition to the hosting features you have come to expect, Amazon offers several features that are designed to make the setup, configuration, and management processes easy.
For example, we have discussed the extensibility of Visual Studio previously - AWS offers a Visual Studio Toolkit that you can download and use.
Amazon is also a global leader in customer service, so if you ever run into any issues or have questions, comments, or concerns, you will have no trouble getting in touch with a support engineer.
Furthermore, AWS has some of the best technical documentation on the internet so you will likely find everything you need already written.
Hostek is a smaller web hosting company that offers your traditional web hosting options, including shared, reseller, VPS, and dedicated plans. Where the company shines are its specialized hosting options.
In particular, the company is known for its ColdFusion (a Java-based web development environment) and ASP.NET Hosting.
When it comes to Windows-based or ASP.NET hosting, Hostek offers options at the shared, reseller, VPS, and dedicated levels.
Within each type of hosting, you have several plans from which you can choose. Generally speaking, you do not have as much flexibility when it comes to scaling up or scaling down as you would with Amazon Web Services, but you do get a simpler, more user-friendly interface.
Furthermore, Hostek is a boutique-style web hosting company. This contrasts sharply with Amazon - while AWS offers top-notch service, you are more likely to get personalized service with Hostek.
Such offerings include setup assistance, migration assistance, and so on.
Accessing your Hostek environment and managing your website is fairly straightforward, as the company offers all its subscribers remote desktop access (and from there, you can use PowerShell or the command line for further control).
Additionally, if you are interested in consulting services for issues that fall outside the scope of support, you are more likely to find an option that fits your needs at a price you can afford with Hostek than with AWS.
If you discover after you have made a hosting purchase that Hostek is not the right option for you, Hostek offers a partial 30-day money back guarantee.
So, cancellations during this period mean that you will get back your account setup fee and any unused hosting credits.
Finally, we cannot go without mentioning Microsoft's own cloud hosting platform, Azure.
It is very similar to AWS, so if AWS looks interesting to you, but it does not completely meet your needs, consider looking at the Azure platform.
You can get started free of charge and then scale up as your website grows.
Pros of VB.NET and C# Supported Hosting
- Because all of the products, tools, and services you are using are proprietary Microsoft offerings, you get the top-notch support Microsoft providers.
- You will know what you are using have been rigorously tested by a team of engineers dedicated to such tasks.
- The .NET Framework is powerful, flexible, and can be used to build pretty much any type of website or web application you want
- The .NET Framework (along with pretty much all Microsoft products) are very commonly-used, so the many resources, documentation, and communities available
- ASP.NET hosting is a common offering. While Linux-based options are certainly more abundant, you will have no trouble finding multiple web hosts options
Cons of VB.NET and C# Supported Hosting
- ASP.NET hosting tends to cost more than Linux-based hosting, even when everything else is equal (hardware, resource allocation, and so on)
- The .NET Framework can be complex - in addition to two high-level languages, you have three different ASP.NET Frameworks, as well as access to numerous resources you can use for your web pages and applications
Microsoft's .NET Framework allows you to build powerful, robust applications quickly, easily, and securely, and using ASP.NET, you can turn your work into websites and web applications with ease. When it comes to hosting, you will be looking for an option that supports ASP.NET, and given the resource-intensive nature of your projects, you will most likely need a VPS plan or a dedicated server.
Luckily, Windows-based hosting is commonly offered, so you have plenty of options from which you can choose.
- The official home of the .NET Framework on the internet, includes full documentation
- Microsoft offers an in-browser .NET tutorial
- Dot Net Perls is a great site for language-related reference articles
Other features in Languages and Frameworks
- .NET Framework
- Ruby on Rails
- Server Side Includes
- PHP 5
- PHP 7