Posts Tagged ‘.NET’
Over the years dynamic languages such as Python and Ruby have become cherished by startups. As for .Net it is more rarely heard to be used by startups. That’s interesting indeed, because this platform is definitely bigger than most of the popular ones.
So I wonder why a platform as widely adopted and supported as .NET isn’t more visible in startup culture. Let’s try figuring out the main arguments in favor and against making .Net a startup technical choice.
1. Community culture
Some people say the main reason is the culture of the .NET community itself, not anything specific to the platform. Being centered mostly around the needs of enterprise market .NET developers’ concerns are often regarding supporting legacy systems, building enterprise architectures, large systems for supporting business processes. This implies solving problems which are not so relevant for startups at least at their initial point.
As for members of the startup community, they fuss over different issues – concurrency, experience design, supporting multiple clients and browsers, etc.
As a result the startup community and the .NET community don’t overlap as much as they do for other technologies. That’s why startup founders don’t get much exposure to .Net and don’t think of it as an applicable tool for their purposes. The same way many .Net developers who want to work for hot startups don’t have as many opportunities to do so unless they abandon the platform for a more startup-friendly one or start a company themselves.
So platform doesn’t always dictate its use – that’s people who make the choice. Enterprise and startups aren’t mutually exclusive – they’re just different stages in the evolution of software, and there’s no reason why the startup community shouldn’t look at .NET as an attractive starting point for a new business.
2. Startup tech compatibility
A startup is a risky venture with no guarantee of success. So tech startups seek advantages in order to succeed. Hence startups take what big enterprises consider risky bets on technology. This objective can be achieved by using technology that is popular in startup environment.
Many features of .NET, facilitating the productivity of big companies, are not always useful to startups. There is too much choice of implementation methods. If anything, web startups are looking to have this choice taken away – their technology choices come from the subset that is built for the web.
Also it is said that innovation is quicker with other ecosystems which have a bigger set of libraries and tools. As for .Net there are a few open source projects however most of them are pretty much an implementation of concepts that have already been implemented for a while in the Java world, for example.
3. Open source vs proprietary
Although many startups don’t mind paying for tools and services, most of them still pick things based on cost. For a long time the “enterprise” level tools, services, databases, etc were hardly affordable by startups. That’s why startups adopt so much open source.
It’s also hard to justify the use of proprietary software from a business perspective. If you want to be acquired it is wise to develop your product using an open stack rather than Microsoft’s.
However luckily for many startups Microsoft saw a huge value in giving their stuff away to startups and startups have benefited greatly. Microsoft has been running their Bizspark program for several years, which eliminates most of the startup costs normally associated with employing a .NET framework. To get into the BizSpark program you just need to get checked by BizSpark team if your startup is eligible (developing a real product). Then you’ll get free licenses to basically every product they make, including SQL Server, and a free MSDN gold subscription, for 3 years. They figure 3 years is long enough for you to get going so after that they want you to pay for new licenses. The great part is that they let you keep the licenses you’re already using. So Microsoft has basically taken the cost factor completely out of the equation for new startups.
4. Velocity vs performance
Some people say that it’s all about the velocity. If you agree with an assumption that a startup goal is to find a niche vs build a product, then the goal of a startup is to learn about the market, customers, and product needs as quickly as possible. Python, Js, Ruby, etc allow you to iterate quickly without a lot of infrastructure and boilerplate. However a company that has already has a market has a little different goal, for them the objective is to build a stable product that they can maintain.
Some people say that .Net is not suitable for quick changes. This is a pretty outdated view of C# these days, it’s actually fairly easy to write extremely terse code with. As an added bonus refactoring is so incredibly easy compared to JS, Ruby, Python, etc. that it’s ideal for rapidly switching directions in code as you can refactor so fearlessly without being slowed down by massive amounts of tests. Unfortunately what’s bad about .Net is the tooling and the supporting ecosystem.
Python is much better suited to quick prototypes that can be fleshed out into a reasonably reliable product without too many headaches. The key difference comes when you have to change features mid-stream. The lack of strict typing and interfaces means you can add, change, and remove features much quicker than C# for example. On top of that, you just write fewer actual lines of code to get the same thing done, although sometimes readability can suffer if you get too concise. There is a price to be paid with Python and Ruby though and performance is the biggest one.
5. Team and project size
The team and project size always matters. So when the solution is being built with a small team, then it is easier to use something like Python. Obviously the goal is to be fast to develop in and have a bunch of libraries to be used. On the other hand when building something with a big team, you feel like using something like C#. In this case it keeps it safe to develop in and easy to catch mistakes. Any optional documentation provided by a developer is incomplete. On the contrary the quality level of the available .Net documentation is outstanding.
However if the company is starting as very small at the initial point, it hopefully grows and builds up quite a sizeable codebase by some point. Python, JS & Ruby are fine for small programs but anything more than that and they become their own enemies because the programs they make are quite brittle.
The common opinion is that .Net scales well.So, if your startup does make it, you’ll probably have a much easier time scaling the .Net stack than you would with say Ruby or PHP.
Conclusion: it’s all about stereotyping
Eventually, I found different opinions on my question of .Net being not so popular with startups such as “platform lock-in,” “no open standards,” “licensing costs.” Sure, these are issues preventing many developers from adopting .NET in the startup space, but not enough to bar all of them from using it. Most of the arguments are just stereotypes that can be dispelled under closer examination.
All languages have strengths and weaknesses. For a startup, you need to do due-diligence and research what the right language to use for your idea will be because recoding in a different language can get costly.
So do you use .Net in your startup projects? Please share your feedback and experiences with us.
If you follow our blog regularly you probably remember that my last post was dedicated to Sitecore CMS. This time I decided to represent for your review one more powerful at the same time arguable CMS – Magento. Magento as well as Sitecore CMS is meant to build big things but this time in the world of ecommerce: helps to create online stores.
As the field of ecommerce is tending to grow and develop continuously IT solutions try to meet the needs and offer the best solutions to make it extremely innovative, make the managing process easier for holders and of course attract as many customers as it is possible. There are many CMSs for this purpose like PrestaShop, OpenCart, osCommerce, phpShop, Spree, nopCommerce and others. The choice of CMS depends on what kind of eCommerce/business you intend to go on. You need to take into account such aspects as the size of your firm, whether you haveB2B, B2C or you’re retail, what management system you use or you will use ecommerce platform for that, connection of you websites with other sales channels, your programming skills: PHP, .NET, etc.
So as you may see there are many CMS available today, the choice depends on what type of business you have and type of software you use. Nevertheless, beyond the rich variety Magento is considered to be one of the front runners.
Almost all claims that Magento is rather complicated system as it is built on Zend framework; however has a lot positive aspects. Generally it is characterized as big, complicated and powerful CMS/platform that provide excellent and multiply options to grow you website.
Magento is also very serious CMS and there is no doubt that it is not for everybody. It is tool for professional rather than for amateur.
-It rather complicated to use and work on it for its coding style, so be prepared to spend/charge from your development team twice more hours than usual. Also if you’re not experienced in coding or working with this CMS we would offer to hire skillful developer/development team with proven past experience to help you with that. Based on our experience working with Magento you should be prepared that the development process could take much more time as you will need to learn all the curves that CMS has.
- Magento is extremely powerful offering a wide range of customization options. It is easy-editable gives an opportunity to improve the code regularly by making updates and fixing bugs. And what is important here is that code itself doesn’t require any changes!
- One more aspect is the rich variety of features that makes Magento so flexible. Let’s now review the key features of Magento:
- International support – multiple languages and currencies, list of allowed countries for registration, purchasing and shipping, localization;
- Site Management – control of multiple web sites, multiple languages.
- Catalog Browsing – easy navigation, advanced product filtering system, product comparison.
- Catalog Management – inventory management, batch import and export of products, different tax rates per location, additional product attributes.
- Analytics and Reporting – integration with Google Analytics and offers different reports.
- Payment – different payment methods: credit cards, PayPal, Authorize.net, Google Checkout, ePay, etc.
- Marketing Promotions and Tools – – coupons, discounts and different promotion options.
- Encryption Key – security storage of the sensitive data in the script’s database.
It is also scalable and it grows with your business. That’s the point why it is mostly recommended for mid to large size vendors.
Additionally it should be said that Magento team offers 24/7 live support. Of course it is not super fast but at least it works and you never know when you will need immediate help. Moreover it has video tutorials, good knowledge base, webimars, user guides and support forum. As Magento has three versions the opportunities of each version differs: Community Edition (downloadable version, you will need to find hosting and security for your store), Magento Go (cloud based of hosted Magento CE, preferably for small retailers) and Enterprise one, the last is complete ecommerce solution, fully supported and it is not cheap. Here it should be noted about technical support: Community version has an access only to the forums that are not so active mainly because Magento is relatively new and don’t have yet many followers. So there is no guarantee that you get an advice you need.
And at last as Magento is open source CMS it is free and you don’t spend your money to download it. But you will need to invest if you want to have store live.
At the same time (there is always the other sideJ) there are gaps (that make this platform a bit vulnerable and look unfinished) that need to be improved too. We have a made a short list of them:
- Slow – Many reports that the software is clunky and suffers from slow load times.
- Expensive – Even it is open source and free it will end up costing you after you add up hosting, security, and developer fees.
- No Customer Support – Magento CE users have no access to technical assistance with the exception of a forum.
- Requires Coding Experience – it requires users to have technical skills and experience in order create and launch stores. It is not for amateurs or hobbyists.
Some more aspects to consider:
- Confusing and hard to learn.
- Difficult to implement templates.
- Not much themes to choose.
- Software updates don’t work always properly.
To use Magento or not?
In my opinion Magento is proved to take one of the leading positions and has potential to save it. It has many positive aspects and if your business is well developed and you have large list of items to put online, you need to consider Magento and invest money in it. But of course be prepared for serious work with all the curves if you don’t have much knowledge in programming or take care to choose the development team wisely. And certainly don’t forget about tech support, Magento CE don’t have it.
In case you still considering whether adopt Magento for your business or not, feel free to share your personal experience with us leaving your comments below or contact me directly if you need assistance with your ecommerce shop to discuss the details.
Thank you for your attention!
Developers are in a unique position to educate and to capitalize on cloud opportunities. Unlike learning new programming techniques or Frameworks, cloud learning moves beyond development. There are infrastructure aspects to consider as well as potential organizational process and policy changes. However, developers know the application and cloud administration is a much lower bar, than, for example network administration. If you’re looking for a strategy to follow to cloud enlightenment; you’re reading the right article.
Give the Cloud a Whirl
When it comes to the cloud, don’t wait for the storm to hit you, but rather educate yourself; there is no substitute for experimentation and hands-on experience. Start by separating reality from marketing. Almost every cloud vendor offers a free trial. For example: Microsoft Azure offers a free trial. If you are truly new to cloud development; imagine borrowing a company server for 3 months; only there is no setup time. Just turn in on and away you go.
Given that experimentation time is limited; go for breadth rather than depth. Get a taste of everything. What most developers find is; after some initial orientation and learning the experience becomes what they already know. For example: Azure has an ASP.NET based hosting model called Web Roles. After configuring and learning Web Role instrumentation, the development experience is ASP.NET. Learning Azure Web Roles amounts to learning some new administration and configuration skills; coupled with a handful of new classes. The rest of what you need to know is nothing new if you’ve done ASP.NET!
Developer must keep their time constrained. Struggling for hours with something new is often not worth the effort. One should question wide adoption of something that will be difficult to work with. Cloud offerings are typically not niche or differentiating skills like, for example, SQL Server tuning.
Whatever cloud option a developer starts with; understand the authentication options. Intranet developers typically take authentication for granted. ASP.NET makes authentication look easy. Consider all the moving parts involved in making authentication automatic and secure. Understanding authentication is especially important if parts of an application will live within the organization’s datacenter and within the cloud provider.
Finally, look for the right opportunities to apply these new skills.
Navigating the Fog
Most developers are adept at picking when to jump on new technology and when to pull back. Unlike adopting, for example, a new Web Services approach; adopting a cloud option entails learning a little more administration. The cloud can give a developer total control, but the cost is learning a bit more administration.
Developers may find themselves in new territory here. Typically a “hardware person” selects a machine and a “network person” selects and configures a firewall. Cloud portals make network and server configuration easier, but the portal doesn’t eliminate the configuration role. The public cloud handles the hardware; but the developer must choose, for example, how many; CPUs, servers, and load balancers will be needed. This lowers the administration bar, but also might place the burden on the developer.
The cloud will not be the right option for every project. Give the cloud a fair chance. Decision makers may have two reactions to cloud; outright rejection or wild-eyed embrace. Neither reaction is healthy. There is middle-ground. Don’t let unrealistic expectations set by marketing brochures guide the first project. A developer’s experiences described earlier in the article will be helpful here. Set the bar low. Make the first experience a good experience.
Supplementing with the Cloud
One potential approach is to supplement with the cloud. Let the cloud handle some part of the application. For example: requirements may dictate a web page to handle user registration. Registrations often have deadlines and, given human nature, people often procrastinate. Registration traffic is likely to spike the week or a few days before the deadline. Rather than purchasing servers to accommodate the spike; leaving usage idle for most of the year, do registration in the cloud. Dial up more servers the week before registrations are due and dial the server could back down the week after registrations are due.
Aside from technical change; cloud adoption may require organizational change.
Clouds Don’t Work in a Vacuum
I would bet good money that most developers reading this article have no idea which ports in their organization are closed to incoming TCP/IP connections. However knowing who to ask is far more important than what is known. In some sense every organization is its own private cloud. Networking professionals have been connecting things together longer than developers. Internet performance is considerably different than Intranet performance. Cultivate relationships with whoever operates your Firewall.
Passing through a Firewall is overhead. Your organization’s infrastructure may not be cloud ready. Though if your network people banter about DMZs; chances are your organization’s infrastructure is probably cloud ready. As stated earlier authentication is important to cover; forcing users to authenticate multiple times within an application is intolerable to most users.
Budgeting for servers may be different than budgeting for compute cycles. There may be concern over whether compute cycles will amount to more than purchasing a server or two. There is no shortcut here. Just like any other budgeting a developer must do the math. Again, this may be new territory for developers. Typically developers aren’t asked how much storage an application requires. Typically the storage cost is spread throughout the projects an organization conducts. Budgeting difficulties may be a good reason not to do a project. The upside is; after doing the math a developer will likely find that costs are far below buying the hardware.
The cloud gives a developer control over all components from administration to assemblies. Added control comes with a price. A developer must venture into some new territory. This article provided a path to follow.
What is your opinion on cloud opportunities? Is it worth to give a trial? What is your personal experience in adopting a cloud option? Maybe you have some thoughts to share!
Posted January 15, 2013on:
ASP.NET seems to have more and more quality options regarding extensible content management systems with each passing year. Depending on your needs, there are excellent options available both with commercial licenses or open source code.
In our blog, we have already tried to gather information about PHP and Java web frameworks, and in this article I`m going to present you a list of open-source CMS for .Net that, in our opinion, are worth taking a look at.
DotNetNuke (DNN for short)
If you are looking for something stable, DDN will be the answer. This CMS has been around for a while and DNN is probably the most well known and popular of all the .NET CMSs presented in my list. It`s is a web content management platform used to quickly develop and deploy interactive and dynamic web sites, intranets, extranets and web applications. It`s available in a free Community and subscription-based Professional, Elite and Elite Premier Editions. Community edition contains most of the features which comprise the other editions, but the support is left up to the community. The Professional Edition gives you support from the DotNetNuke Corporation along with a few more features, and for a (much) increased price, the Enterprise Edition gives you a few more features along with phone support.
Another Asp.net based CMS offering multiple licensing options is the Kentico CMS. The free license requires you to keep the logo and copyright information on your page, but the commercial versions offer support and allow you to work without the branding. This CMS allows building dynamic web sites, online shopping carts, intranets and web 2.0 community sites. Kentico CMS is designed to be easy to use for even novice users, so web development should go fast with someone who is experienced. It has powerful content editing interface – Kentico CMS Desk, which allows a user to edit content and preview it before publishing, also it`s easy to organize content into a tree hierarchy of documents (pages). The hierarchy (content tree) represents the site map and the navigation structure.
Umbraco CMS is free and open source Web CMS built on the Microsoft .NET Framework. It provides a full-featured web content management system that is easy to use, simple to customize and robust enough to run the largest sites such as wired.co.uk and asp.net. Umbraco CMS has recently become very popular with designers and web developers due to the open templating system and ability to build in guidelines that automatically format the content writers provide. Also, it uses ASP .NET “master pages” and XSLT, so there is no necessity to work with a heaped-together templating format. It’s written in C# and is happy to work with a variety of databases, so hosting shouldn’t be a problem.
N2 CMS is an open source lightweight CMS to create simple and user friendly website. N2 CMS contains a package of functional templates with News, Wiki, Photo Galleries, FAQs, RSS, Data Entry, Polls and more. Features include full control of content and nodes, drag&drop, versioning, wizards, export/import, security, globalization and more.
Orchard CMS is Microsoft’s hand in the open source world. It`s community focused and is supported by full-time developers from Microsoft, that develop components and scripts that are open tools for developers to create applications. With the help of Orchard CMSO, it`s possible to create content-driven Websites. While this CMS may be a bit slow and some of the things you’d expect in a more robust CMS might be missing, there’s several fantastic back-end features and it`s a CMS that is worth considering when choosing a technology for your project.
Sitefinity is the most modern .NET web content management platform available on the market today. It offers many enterprise features, and simple, easy-to-use online administration tools for managing your website. The new revolutionary User Interface is very task oriented and simplifies the user interaction with the system. Sitefinity has 6 available license editions ranging from free for personal use, to $499 for small businesses, and custom pricing for the Enterprise and Multi-Site Editions. Currently Sitefinity is responsible for powering thousands of websites. Some of their most prominent government websites include: The White House Federal Credit Union, United States Courts, Downtown Fort Worth, and the Canadian Securities Transition Office. Other customers include: Toyota, Vogue, IKEA, Chevron, Bayer, and Coca-Cola.
Certainly the list of CMSs can go further and further and every CMS has its advantages and disadvantages. I`ll highly appreciate if your share your opinions and experience on using these CMSs and adding your favourite CMSs to the list.
When a developer faces the necessity of creating a web application using Microsoft.Net, he/she needs to choose which .Net framework to choose. Then the question arises: which one is the best one?
In this article a general outline of best ASP.Net Web Application Frameworks is given with the focus on their positive sides. Let’s start.
ASP.NET MVC is a part of the ASP.NET Web application framework. It is one of the two different programming models you can use to create ASP.NET Web applications, the other being ASP.NET Web Forms.
ASP.NET MVC brings the power of this development paradigm to ASP.NET development, allowing you to use your .NET development skills to create MVC applications.
It gives you total control over your HTML Markup as well as enables rich AJAX and jQuery integration. It also allows you to create SEO-friendly URLs for your site and makes Test Driven Development (TDD) easy. Besides, it enables a perfect and clean separation of bugs and concerns, helps in creating and building dynamic websites and web application that are rich in user interface.
DotNetNuke is a free, open source and easy to use application that is particularly based on web content management system along with web application framework which comes and is working perfectly with Microsoft .NET platform.
DotNetNuke is developed on the powerful Microsoft .NET platform – Windows server, IIS, SQL Server 2000, and ASP.NET (VB and C#). It can run on almost any database server, as long as someone has created the necessary provider (third-party providers include Oracle and mySQL). The flexible technical requirements make it possible to install and evaluate DotNetNuke on almost any computer.
DotNetNuke is offered under a nonrestrictive BSD License, a standard open source license that allows for full usage in both commercial and noncommercial environments. The BSD, well-documented ASP.NET source code, an active developer community, and a modular architecture make it possible to customize DotNetNuke and leverage it as a mature Web Application Framework. For end users, all DotNetNuke requires is a Web browser and an Internet connection.
OpenRasta is an open source development framework targeting the Microsoft .NET platform for building web-based applications and services. OpenRasta framework has been released under Open-Source MIT License which mainly focus on various HTTP methods as well as on development of available resources. With the help of this, user can now create user friendly Web Interface by its web application framework.
OpenRasta however does have many MVC features and can serve as a full-fledge web application framework.
OpenRasta’s strengths lie in it’s comprehensiveness, wide range of features, active development and support community plus good documentation. OpenRasta’s weaknesses are similar to other frameworks in that is not as approachable as Web Forms and is intended for experienced developers. Hosting of an application built on OpenRasta is available through ASP.NET, in-memory, in-process through Windows’ HTTP APIs, or through any other environment able to receive HTTP requests, as the framework itself has no dependency on ASP.NET.
MonoRail is an Asp.net MVC based web application framework which has been inspired and designed from Action Pack. This tool offers completely different approach towards development of application towards standard WebForms way of development.
It also enforces handling application flow, separation of concerns, troubleshooting, model representation as well as viewing the application from the presentation logic point of view. This also means that your will have to write less code and result would be more maintainable application.
CSLA.net is an Asp.net MVC based web application framework that is particularly used for development purpose. It allows you to design and develop applications for various kind of services like for Windows, Web, service-oriented and also for work-flow applications. One of the best advantage of using this tool is that it reduces the cost of developing, building as well as maintaining applications.
It performs various action of collecting data and storing them into the database application along worth creating user friendly interface. This is one of the most widely used framework which allows developers to use the power of object oriented design which will result out in developing powerful web applications.
Thanks for your attention :) Hopefully, this article was informative and useful for anyone who read it. And do you have any comments? Looking forward to hear your opinion on best ASP.NET Web Application Frameworks!