Archive for the ‘.NET’ Category
Recently Immo Landwerth post about .NET Standard 2.0 appeared in the web. Briefly, it is the unification of three major.NET Framework branches: .NET Framework, .NET Core and Xamarin. Simply saying, it is an API set which will be implemented by all platforms. This will join up the .NET platforms and stave off future fragmentation. This means that developers don’t need to master three different base class libraries to write code that runs across all of them. As long as industry is rapidly changing new .NET features will be designed by Microsoft or someone else.
A significant change is that .NET Standard will replace Portable Class Libraries (PCLs) in order to build multi-platform .NET libraries. Although the gist will be the same for developers, but implementation will be different.
The .NET Standard will include two types of APIs, the ones which are absolutely necessary to be implemented by all platforms, and optional APIs, which are not obligatory to be implemented. The last will be available as individual NuGet packages.
The APIs that can not be implemented on all platforms can be divided into two groups: specific APIs for each runtime and specific APIs for each OS. There are three ways to deal with unrealizable API. The first one is to make API unavailable. Secondly, you can make API available, but throw PlatformNotSupportedException on the platforms where there is no implementation. And also you can simulate API (as Mono does, partially simulating the registry as .ini files).
.NET Standard uses all of these variations and their combination, depending on the situation. Technologies that are available only on certain platforms will be implemented as NuGet packages. If it is unreal to make a stand-alone package, then there are options: throw an exception or simulate API.
In this table the arrows are showing the platform ability to support a higher version of .NET Standard. For example, .NET Core 1.0 supports the .NET Standard version 1.6, which is the reason why arrows point to the right for the lower versions 1.0 – 1.5.
As you can see, the 4.6.1 framework version meets twice. With this version exactly .NET Standard 2.0 will be compatible, as well as future versions of Xamarin and .NET Core. There was a roll back of changes that were included in versions 1.5 and 1.6. This was done in order to support backward compatibility. Newer versions of .NET Standard should contain previous and new features. During the analysis of NuGet.org only 6 packages with .NET Standard 1.5/1.6 target platform were found, the author of which is not Microsoft, so it was decided to take 4.6.1 as a basis, and to offer the authors of these 6-packs to update them.
PCL is replaced by .NET Standard, but you are still able to work with it. You can make a reference from one .NET Standard library to another, or to PCL library.
Graphically, this looks as follows:
In addition, it is possible to make a reference to a conventional .NET library using the compatibility shim.
But it will only work in case all APIs in this .NET library are supported by .NET Standard. In this case it will be much easier to apply the references to existing libraries.
The following image shows the main APIs of .NET Standard 2.0
Opportunities which are likely to appear in .NET Core are quite predictable as long as this brunch has less possibilities than others.
As for Xamarin, many of these APIs have been included in the release of Cycle 8 / Mono 4.6.0
Source: .Net Blog.
What do you think about these new features? Please feel free to share your thoughts with us. Thank you in advance!
Business Development Manager
Professional Software Development
Introducing ASP.NET Core:
ASP.NET Core is a new open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac and Linux. ASP.NET Core is open source at GitHub.
The framework is a complete rewrite that unites the previously separate ASP.NET MVC and Web API into a single programming model.
Despite being a new framework, built on a new web stack, it does have a high degree of concept compatibility with ASP.NET MVC.
ASP.NET Platform exists for more than 15 years. In addition, at the time of System.Web creation it contained a large amount of code to support backward compatibility with classic ASP. During this time, the platform has accumulated a sufficient amount of code that is simply no longer needed and is deprecated. Microsoft faced a difficult choice: to abandon backward compatibility, or to announce a new platform. They chose the second option. At the same time, they would have to abandon the existing runtime. Microsoft has always been a company focused on creation and launch on Windows. ASP.NET was no exception. Now the situation has changed: Azure and Linux occupied an important place in the company’s strategy.
The ASP.NET Core is poised to replace ASP.NET in its current form. So should you switch to ASP.NET Core now?
ASP.NET Core is not just a new version. It is a completely new platform, the change of epochs. Switching to ASP.NET Core can bring many benefits: compact code, better performance and scalability. But what price will be paid in return, how much code will have to be rewritten?
.NET Core contains many components, which we are used to deal with. Forget System.Web, Web Forms, Transaction Scope, WPF, Win Forms. They no longer exist. For simple ASP.NET MVC-applications changes will be minor and the migration will be simple. For more complex applications, which use a great number of .NET Framework classes and ASP.NET pipeline situation is more complicated. Something may work and something may not. Some part of the code will have to be rewritten from scratch. Additional problems may be caused by WebApi, because ASP.NET MVC subsystems and WebAPI are now combined. Many libraries and nuget-packages are not ready yet. So, some applications simply will not have a chance to migrate until new versions of the libraries appear.
I think we are waiting for the situation similar to the transition from Web Forms to ASP.NET MVC. ASP.NET Framework will be supported for a long time. First, only a small amount of applications will be developed on ASP.NET Core. Their number will increase, but sooner or later everyone will want to move to ASP.NET Core. We still have many applications running on the Web Forms. However, no one comes to mind to develop a new application on the Web Forms now, everybody chooses MVC. Soon the same happens to ASP.NET Framework, and ASP.NET Core. ASP.NET Core offers more opportunities to meet modern design standards.
The following characteristics best define .NET Core:
- Flexible deployment: Can be included in your app or installed side-by-side user- or machine-wide.
- Cross-platform: Runs on Windows, macOS and Linux; can be ported to other OSes (Operating Systems). The supported OSes, CPUs and application scenarios will grow over time, provided by Microsoft, other companies, and individuals.Command-line tools: All product scenarios can be exercised at the command-line.
- Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard Library.
- Open source: The .NET Core platform is open source, using MIT and Apache 2 licenses. Documentation is licensed under CC-BY. .NET Core is a .NET Foundation project.
- Supported by Microsoft: .NET Core is supported by Microsoft, per .NET Core Support.
- As for the “cons” one of the biggest issues are gaps in the documentation. Fortunately most of the things for creating and API are covered, but when you’re building an MVC app, you might have problems.
- Next problem – changes. Even if you find a solution to your problem, it could have been written for a previous version and might not work in the current one. Thanks to open source nature of it, there is also support available on github. But you get same problems there (apart from searching).
- Another thing is lack of support in the tooling. You can forget about NCrunch or R# Test Runner. Both companies say they will get to it when it gets more stable.
- ASP.NET Core is still too raw. Many basic things, such as the Data Access, is not designed for 100%. There is no guarantee that the code you are using now will work in the release version.
- It’s modular. You can add and remove features as you need them by managing NuGet packages.
- It’s also much easier and straightforward to set up.
- WebApi is now part of the MVC, so you can have class UserController, which will return a view, but also provide a JSON API.
- It’s cross-platform.
- It’s open-source.
ASP.NET Core is the work on the bugs of the classic ASP.NET MVC, the ability to start with a clean slate. In addition, Microsoft also aims to become as popular as Ruby and NodeJS among younger developers.
NodeJS and ASP.NET have always been rivals: both – a platform for backend. But in fact, between them, of course, there was no struggle. The new generation of developers, the so-called hipster developers, prefer Ruby and Node. The adult generation, people from the corporate environment, are on the side of .NET and Java. .NET Core is clearly trying to be more youthful, fashionable and popular. So, in future we can expect the .NET Core and NodeJS to be in opposition.
In its advertising campaign, Microsoft is betting on unusual positions for it: high performance, scalability, cross-platform. Do you think that ASP.NET “crawls” on the territory of NodeJS? Please feel free to share your thoughts with us.
Thank you in advance!
Business Development Manager
Professional Software Development
Posted March 9, 2016on:
Content Management Systems help to control and manage the content of any website where business is efficiently managed. .NET CMS gives you the power you need to develop high-concept, beautiful websites with a strong backbone which gives an experience working with .NET platform used in various kinds of business.
Sitecore CMS and Sitefinity CMS are two content management systems based upon ASP.NET framework. We have chosen to focus on these systems as they are flexible, functional and easy in using. They are proved to be compatible on multiple devices, albeit using slightly different mechanisms, and customizable for the needs of differing countries. Also they are able to deliver vast amounts of information as part of logical information architecture.
Both of these CMSs have similar features and can meet various business needs with different requirements. Websites get more customized, gain more potential and get more interactive with these CMSs.
Hope the information in this article will assist you with the choice of either Sitecore or Sitefinity as more appropriate option for you.
Sitecore is a flexibile, scalabile and secure CMS, used by many leading global organizations such as Experian, Toshiba, Canon and Nestlé. The CMS incorporates a powerful desktop interface that is controlled by a fully-customizable role-based system. This desktop is very similar in look to a Windows desktop, which makes it easy for users new to Sitecore to pick up and learn the system. There are also multiple applications, like in Windows, aimed at specific tasks such as editing content, managing users, monitoring campaigns, setting up workflows, etc.
Sitecore enables web content editors and marketers to have full control over all aspects of their website from social integration and blog posts to advanced personalization, e-commerce and more.
Points in favor:
• The possibility to customize content based on user activity, such as completing a form;
• The opportunity to add an engagement metric, allowing developers to give visitors a value based on how much they’ve engaged with your solution;
• Sitecore CMS makes it easy to create world-class websites with its open architecture and rich development environment and tools;
• The function to send triggered emails (automated marketing messages based on a prospect’s behaviors) direct from the platform;
• On top of the CMS foundation, organizations can optimize the experience of their customers through multivariate testing, personalization and engagement automation;
• The CMS capabilities offer complete customization while maintaining data integrity so that organizations can manage large amounts of content efficiently not just on the web presence but across email, social, mobile and print;
• The ability to analyze the journey in either a campaign or a journey view, giving full visibility of the value to relevant sources;
• Sitecore CMS helps you to reach your customers in their preferred format with functionality to deliver content on multiple devices, including mobile.
• If you do not have developers with .NET experience or operate on a small scale, Sitecore may not be the most appropriate option for your needs;
• The email marketing capabilities are still maturing along with volume capacity. The basics are solid, but the more advanced features still have some caveats in their function;
• When a platform offers an immense amount of features the usability becomes more challenging. For those organizations that can truly take advantage of the enterprise-level capabilities, proper training and onboarding (organizational change management) is a must-have in order to see the vision fulfilled;
• Sitecore CMS has a licensing cost. Pricing is based on the number of Sitecore Server installations, as well as the number of simultaneous users logged in (such as developers, designers, content editors, etc.).
Sitefinity CMS is used for the construction and management of commercial websites, community portals, intranets, etc. Different successful organizations such as NASA, Chevron, Expedia, PepsiCo, Panasonic, Roche and more, rely on this CMS to optimize customer experiences across multiple digital channels. Sitefinity is engineered with flexibility and extensibility in mind to give developers the freedom they need to integrate legacy applications or use custom 3rd party controls and modules.
This CMS doesn’t require any special skills. You don’t even need to know any web development languages to use this system. But if you want to customize the system like our experts, then some of the languages you’d need to know.
Points in favor:
• Content Authors and Marketers need the ability to change and edit content on the fly. With Inline Editing feature you can create and edit content right on the page;
• Sitefinity’s page editor makes it easy to create rich, dynamic content by interacting with user-friendly interfaces. Content is created by simply dragging & dropping widgets onto a page;
• This CMS makes websites fully accessible on other platforms such as tablets and smartphones, which is really useful nowadays;
• Sitefinity provides a rich toolset for automatically connecting visitors with personalized content showing the right content to the right person by defining your audience, transforming the content, and testing the result;
• The multisite management makes it easy for organizations to manage a collection of websites and microsites through a centralized interface. Content authors can easily contribute to multiple websites, or utilize content from other websites. Users, roles, content, permissions, templates, images, and others can be effortlessly shared or synchronized between sites;
• Extensive Out-of-the-Box Features: there is an extensive toolset for addressing the challenges associated with managing a modern website. Solutions for mobile, email campaigns, social media, ecommerce, blogs, forums, search, and much more are instantly accessible. This allows organizations to focus on what to build instead of how to build;
• Sitefinity also provides inbuilt Search Engine Optimization (SEO) while enabling you to customize basic meta-data such as the title and page descriptions.
• While the documentation is available, sometimes it isn’t extensive enough for some of the advanced concepts because it is of a quite basic level;
• Sitefinity provides a high level of granularity to customize the system, but sometimes this is a bit overkilled. For example, e-mail notifications are disabled by default in the installation system. If you want to see e-mail notifications after a form was submitted, you have to update your system settings, notification profile, and also enable notifications for forms;
• This CMS works on a “feather” template that is supposed to be more bootstrap friendly, so ultimately you have to write some special template code. A large scale HTML mode could help with some updates;
• There is licensing fees. Sitefinity tailors their licensing toward different user bases. There’s a free edition, a small business edition for companies who don’t need to use a lot of the advanced features/modules, standard, and enterprise.
As we can see, there are various attributes of Sitefinity & Sitecore CMSs and the choice definitely depends on your preferences.
If you are not up to build very structured site we would like to recommend Sitefinity because you don’t need any specific skills to work with this CMS. The licensing price seems good compared to others .NET CMS platforms and the out of the box features assist to get you up and running a site. The templating model is good and the extensible models aren’t overly complicated to work with.
On the other hand if you have a relatively big website or host many websites Sitecore is better in this case because this CMS is the most effective when it’s using as part of a full digital strategy, targeting content at your audience and using the personalization features to create real engaging websites. However in case your budget is limited and you have only a few sites to manage, this product is not the best option for you.
So wish you good luck with your own choice! I really hope this article was useful for you.
Also it will be nice to know your opinion. Which CMS do you use for your business? Which CMS do you think is more appropriate for your projects and why?
Please feel free to share your thoughts in the comments below!
Business Development Manager
Professional Software Development
Posted August 11, 2014on:
Sitecore’s CMS flexibility, scalability and security make it an enterprise favorite, powering more than 32,000 websites around the world from financial powerhouses like American Express to some of the largest international sporting tournaments like Barclays ATP World Tour Finals. Let’s try to find out why Sitecore is so popular nowadays especially among companies which have got high traffic sites.
What is Sitecore and why it is a choice for so many companies and businesses?
From the start, Sitecore’s architecture is able to meet every unique business need with speed, flexibility and dependability. The large variety of organizations are using Sitecore’s CMS solutions – companies (more than 3,000 of the world’s leading brands such as Experian, Toshiba, Canon, Nestlé, American Express, Carnival Cruise Lines, easyJet, Heineken, and Microsoft), schools, and government agencies all over the world in every vertical sector are leveraging from Sitecore CMS to create business advantage and online success.
Sitecore is one of the leading enterprise-level content management systems built on ASP.NET, enabling web content editors and marketers to have full control over all aspects of their website from social integration and blog posts to advanced personalization, e-commerce and more. Launched in 2001, Sitecore has used the .NET platform from the beginning of the language itself, and has been growing in popularity over the last few years. Nowadays Sitecore is a quite popular CMS in the U.S.A. and Western Europe.
Sitecore CMS brings the power of personalization and conversation management right in the hands of your marketers and business users. The CMS incorporates a powerful desktop interface that is controlled by a fully-customizable role-based system. This desktop is very similar in look and feel to a Windows desktop, which makes it easy for users new to Sitecore to pick up and learn the system. Developers will find Sitecore’s powerful technology platform and open API architecture provides them the flexibility and scalability they need.
10 main reasons why companies should use Sitecore CMS
Some of the top features of Sitecore CMS include solutions that offer better insight to website user behavior as well as tools to increase site visitors:
1) Insight to Website Traffic Conversion;
2) Targeted Content Based on User Behavior;
3) Repurpose Content for Different Devices;
4) Easily Integrate with Third Party Tools;
5) Improved Search Engine Optimization (SEO);
6) Fast Integration with Microsoft Technology;
7) Highly Scalable;
8) Intuitive and User-Friendly Design;
9) Optimize Web Experience with Multivariate Testing;
10) Web 2.0 and Social Media Integration.
.NET-based CMSs: Sitecore, SharePoint, Umbraco – how to choose the right one for your business?
Comparing Sitecore and SharePoint
Firstly, let’s look at SharePoint and Sitecore, as it is often asked about the possibility of using Sitecore for an intranet or SharePoint for a public-facing website. While the idea of using one technology solution to solve both problems sounds promising, there are many things you should consider before limiting yourself.
Here are some thoughts in which cases you should choose Sitecore CMS for your projects and in when it is better to stick to SharePoint (these points are based on experts’ views as well as on Altabel’s own experience):
- it is better to use Sitecore for a platform to customize the web user experience based on non-authenticated users;
- choose Sitecore for a marketing driven platform;
- for an external content focus, choose Sitecore;
- choose SharePoint for an IT driven platform;
- it makes sense to choose SharePoint for a collaboration platform;
- for an internal content focus with enterprise level security requirements, choose SharePoint.
Following the beaten path, many companies continue using SharePoint for creating public facing sites – they are well familiar with it and have already invested a lot of time, money, and knowledge in SharePoint. But actually it should be kept in mind that SharePoint was not developed for such sites so it’s worth adopting another CMS to develop them. There are some advantages Sitecore offers over SharePoint as a CMS for a public facing website:
- Sitecore allows high flexibility for content editors and a logical hierarchical structure;
- SharePoint is very limited to List Viewsfor content entry;
- Sitecore’s Web Forms for Marketers makes building forms and triggering goals simple;
- Frontend development for SharePoint is restricted and requires a lot of customized work, Sitecore on the other hand, is free of restrictions and able to do anything you want;
- Sitecore offers fantastic technical support;
- Sitecore offers easy multilingual configuration;
- A/B testing is included with Sitecore, a must for a modern website. SharePoint does not come with any kind of A/B testing;
- Sitecore’s DMS (Digital Marketing Suite) – SharePoint has nothing like this. Any website that has marketing in mind can greatly benefit from this tool included with Sitecore;
- Sitecore is developer-friendly – Development in Sitecore is much easier and requires a lot less specific knowledge. More developers are able to produce a better solution, faster, cheaper;
- Sitecore has a clear line between data and presentation making content easier to manage.
The bottom line is simple: If you’re looking to build a public internet site on the Microsoft platform, SharePoint makes sense if you meet a certain set of criteria. But Sitecore provides an extremely compelling alternative that, from a business owner’s perspective, offers superior tools for engaging with the customer.
Comparing Sitecore and Umbraco
Sitecore CMS and Umbraco CMS are two leading content management systems based upon Microsoft’s ASP.NET framework. Their flexibility, functionality, integration capabilities and ease of use is why many have chosen to focus their technical expertise on these systems.
Let’s have a look at the similarities between Sitecore CMS and Umbraco CMS:
- Easy integration with Microsoft Office;
- Endless expansion possibilities;
- Easy-to use User Interfaces (UI);
- Design layouts are separated from the content;
- Due to the large open-source Umbraco community and the expert development teams within the Sitecore network both CMS platforms are constantly evolving at a rapid pace;
- Easily scalable and customizable through modules (Sitecore) or packages (Umbraco);
- Can be integrated with your internal systems like ERP and CRM;
- Comprehensive documentation and online help & guidance.
And now let’s get acquainted with the differences between these two CMS:
– Sitecore is an enterprise solution whereas Umbraco is suited to small-medium sized businesses;
– Sitecore is a license-based product. This means a license fee is paid to acquire it. Licensing options can be chosen, taking in consideration a number of factors, making it possible to use Sitecore in a variety of projects: from small non-profits, with websites running on a single server, to big corporations with millions of visits per day;
– Umbraco is an open-source product, meaning there is no license fee;
– In both North America and Europe, you can easily find an existing Sitecore customer. This is very helpful to further increase adoption as it means that new customers have some experience they can tap into. In addition, Sitecore has many government references where Umbraco has almost none;
– Sitecore 7.1/7.2 has advanced feature set;
– Sitecore is an established global player; much more so than Umbraco. Sitecore is in particular strong in the important and highly competitive US and UK markets.
Our opinion is that if you do a proper CMS vendor evaluation, you will probably find that the license cost is only a fraction of the overall project costs. Your criteria should really be to look at which system will meet your requirements most efficiently.
If you are looking for a .NET-based CMS, all these products will work – but right now, at Altabel we would lean toward Sitecore when looking for a pure CMS that provides fast development time, stable platform and ease of use for non-technical content creators.
Of course, each organization is different, and it makes sense to check out the products and run them through your technology selection process to determine which is best for you.
Hope you have found the article interesting and helpful for you.
Also it would be nice to hear your opinion and practical experience. What CMSs do you use and for what kind of projects? What is your favorite CMS and why?
Thank you for your attention and looking forward to your comments.
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.
E-commerce sector has been in fashion and on boost for a while now. That’s why there are many debates over choosing the right open source solution for it. Let’s try to figure out why nopCommerce could become your choice. If you are an ASP.Net developer, you might want to graciously add and/or argue with something. In any case, welcome aboard 🙂 and let’s get to the point.
“NopCommerce is among the top 5 featured e-commerce apps on Microsoft Web Matrix, downloaded more than 395,000 times from there and witnessed more than 883,142 source code downloads from Codeplex.”
The main feature of this software is that it is very easy to manage and quite user-friendly. This was the reason why nopCommerce created a buzz in the market soon after it was launched. Unlike others, nopCommerce is not written in PHP or Pearl rather, it is completely written in ASP.Net 4.0 and nopCommerce developers have provided the backend of SQL 2005 which even today is considered as very powerful database management platform.
NopCommerce is an open source e-commerce solution that contains both a catalog front-end and an administration tool back-end which is easy to work with for anyone with basic computing and administrative skills.
The various features that have made nopCommerce so popular are notification via sms, live chat, multiple language support, one page checkout procedure which ensures a low bounce rate, billing and shipping detail, mapping the products in the appropriate categories and sub categories. You have control over features such as discounts, coupons, wish lists, tax options, shipping methods and much more.
Speaking about other Nopcommerce features that seems quite prominent to me, they are:
• availability of exchange rate system that is based on the real time prices and multicurrency support (this has greatly helped the shoppers across the globe to shop freely irrespective of their current location);
• multi-store and multi-vendor support (this also allows online store owners to sell their products without the need to stock inventory and ship orders);
• drop shipping (enables the assignment of vendor details to a product).
Additionally NopCommerce is one of those few open source solutions that have been built keeping Search Engine Strategies in consideration with the use of friendly URLs, properly structured content and products to enable potential customers to find your store.
And last but not least nopCommerce is supported by fastest growing user community which has increased the technical as well as informative aspect of the solution.
With so many advantages listed, inadvertently a question arises if there are any pitfalls with this solution. And for sure there should be some. For instance it appears to have heavy server requirements and tends to require more design and development expertise than other shopping carts.
And what are your thoughts about nopCommerce? Please share your experience of using this e-commerce solution. Many thanks in advance!
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!