Greetings. I attempted to clarify the topic in the title. I apologize for any inaccuracies and kindly ask that you point them out rather than criticizing me.
It might seem unusual, but I'm already thinking about my thesis (I've finished my fourth year). For me, the topic isn't as important as the programming language and technology to be used for writing it. This is what I need to improve my skills during the summer and fall months in the selected language.
As a potential topic, I am considering designing an information system for a web studio that includes features such as adding and managing projects and employees, organizing workflow, displaying task lists, and more.
Additionally, I have a desire to create an Android application to accompany the system. This application would enable customers to view project status information.
These are my initial thoughts and sketches, and I intend on adding more functionality over time.
Now to the crux of the matter, which technology should I use - ASP.NET MVC 4, Yii PHP Framework, or Ruby on Rails? I have read various articles about both options on forums, and I like what I've discovered so far.
I am relatively familiar with PHP and have more experience with C#. The cost of hosting doesn't influence my decision, and I prefer using Visual Studio.
I would appreciate your professional opinion on the following indicators:
1. Ease of learning.
2. Functionality.
3. Developing an API (or using what's available to access the site through a mobile application).
4. Access to help when encountering problems (or, in other words, the size of the supportive community).
5. Difficulty of mastering.
6. Performance.
7. What else should I consider when choosing?
I welcome any feedback, from "Go back to kindergarten" to "Why did you become a programmer?" =)
Thank you in advance for your assistance.
Hello! Let me give you some advice on ASP.NET MVC:
1. Learning speed.
If you already know C#, it will take you around a month to learn ASP.NET basics and features for development on ASP.NET MVC, with the help of books like "Microsoft ASP .NET 4 with c# 2010 examples for professionals" and "ASP.NET MVC3 (or 4) Framework with C# examples for professionals". You'll need to spend around 4-5 hours a day studying. If you plan to use ORM EntityFramework, choose the latest version (6.1.). There are helpful articles on EF6 available.
2. Functionality.
I am not sure what this refers to, so I cannot offer any advice.
3. Creating an API (or organizing access to a mobile application via the site).
You can find excellent articles on ASP.NET WebAPI on their website.
4. Access to support when encountering problems.
You can find helpful resources on MSDN, asp.net, Stackoverflow, Toster, Habr, and by searching in English on Google.
5. Difficulty of learning.
If you already know C#, then learning ASP.NET MVC would be of average difficulty (subjectively speaking).
6. Performance.
I cannot compare the performance of PHP/RoR/ASP.NET MVC since I haven't programmed in PHP/RoR. However, I noticed that when developing a web application on a local PC, ASP.NET MVC loads slower than on a real hosting or a dedicated server.
7. Other important considerations.
Price may be a factor. For PHP, you just need a free editor and a free Apache web server. For ASP.NET MVC, you have two options: use free Express versions of products like Visual Studio and MS SQL Server, or use paid versions of the same products. Additionally, check if your university is a member of the Microsoft Academy Alliance, which grants access to paid products for free. If not, completing a Microsoft course on the INTUIT site can also give you access to free products like Visual Studio and MS SQL Server.
It is improbable that you will be able to write something worthwhile like CRM or project manager without sufficient experience in a short time. If "with c# much more" does not translate to experience in developing a production application, it would be best to start with Redmine in Ruby and develop a client on the frontend using frameworks such as Angular or Backbone.
This will allow you to gain mastery in various technologies and handle a large number of user cases. Redmine is a flexible and high-quality product that requires less time and effort compared to building from scratch. A successful project could attract good customers.
I think ASP.NET would be the best choice for you since there is a C# database and you're still a student. According to DreamSpark, you can obtain a professional studio via ISIC. Although I don't know much about other technologies, I feel that starting from scratch, Ruby is superior to PHP, but in terms of job availability, it's the opposite.
Additionally, ASP.NET has a Web API with Data, and MS Office works well with OData. Consequently, if you demonstrate how simple it is to build reports in Excel using your OData endpoints (which is essentially the database), your teachers will likely appreciate it while evaluating your work.
Regarding your potential topic of designing an information system for a web studio, it sounds like a practical and interesting choice. Adding an Android application to accompany the system is also a good idea to extend the functionality and provide value to customers.
Now, let's discuss the options you mentioned: ASP.NET MVC 4, Yii PHP Framework, and Ruby on Rails. I'll provide some insights based on the indicators you mentioned:
1. Ease of learning: ASP.NET MVC 4 might be easier for you to learn since you have more experience with C#. Yii PHP Framework and Ruby on Rails also have learning resources available, but they might require additional effort if you're not already familiar with PHP or Ruby.
2. Functionality: All three options can provide the necessary functionality for your information system. They are capable frameworks with extensive capabilities for building web applications.
3. Developing an API: All three options allow you to develop APIs to access your system from a mobile application. However, ASP.NET MVC 4 has strong support for building APIs through its Web API framework, making it a good choice if API development is a priority.
4. Access to help: ASP.NET MVC 4 has a large supportive community due to its popularity, which means you can easily find help and resources when encountering problems. Yii PHP Framework and Ruby on Rails also have active communities, but they might be relatively smaller.
5. Difficulty of mastering: The difficulty of mastering each option depends on various factors such as your personal experience and background. Since you have more experience with C#, learning ASP.NET MVC 4 might be less challenging for you compared to Yii PHP Framework or Ruby on Rails.
6. Performance: In terms of performance, all three options can deliver good results. The performance of your system will depend more on your implementation and optimization rather than the technology itself.
7. Additional considerations: Apart from the indicators you mentioned, you should also consider factors such as dоcumentation availability, community support for libraries and extensions you might need, and any specific features or characteristics of each framework that align with your project requirements.
8. Scalability: Consider the scalability requirements of your information system. Will it need to handle a large number of projects, employees, and users? Look into how each technology handles scalability and whether it can meet your future growth needs.
9. Security: Information systems often deal with sensitive data, so security is crucial. Investigate the security features and best practices provided by each technology. Look for features like built-in protection against common vulnerabilities and support for authentication and authorization mechanisms.
10. Integration capabilities: Think about any existing systems or services that your information system might need to integrate with. Consider the ease of integration offered by each technology, such as support for APIs, libraries, and frameworks that can facilitate seamless interaction with other systems.
11. Flexibility and extensibility: Consider how easily you can extend or modify your system in the future. Look for technologies that support modular design patterns, have a wide range of available extensions or plugins, and offer good support for code maintenance and updates.
12. Ecosystem and community support: Assess the maturity and vibrancy of the technology's ecosystem. Look for active development, a diverse range of available resources (tutorials, dоcumentation, forums, etc.), and frequent updates or releases. A strong ecosystem indicates better long-term support and potential for future enhancements.
13. Industry relevance: Consider the industry adoption and job market demand for each technology. Technology trends can change rapidly, so it's worth considering which language or framework is more widely used in the industry and offers better career prospects.
14. Personal interest and motivation: Don't forget to factor in your personal interest and motivation when choosing a technology. Working on a project using a technology you're genuinely excited about can lead to better engagement and a more enjoyable experience throughout the thesis process.
In conclusion, considering your familiarity with C# and Visual Studio, ASP.NET MVC 4 seems like a solid choice for your project. It has good functionality, strong API development support, and a large supportive community. However, Yii PHP Framework and Ruby on Rails are also capable options, and if you have a preference for PHP or Ruby, they could be worth exploring further.
The best framework largely depends on the specifics of your project, your familiarity with the languages involved, and your personal preference. Here's a brief overview of the three:
ASP.NET MVC 4: This is a framework for building scalable, standards-based web applications using well-established design patterns and the power of ASP.NET and the .NET framework. The main advantage of ASP.NET MVC is its integration with the Windows and .NET ecosystems, so if your project involves substantial integration with these systems, you might want to go for this. However, being Windows-centric can also be a limitation if your solution needs to be platform-agnostic.
Yii PHP Framework: Yii is a high-performance, component-based PHP framework for developing modern web applications. It's fast, secure, and efficient and works right out of the box preconfigured with reasonable defaults. The toolkit is easily adjustable to efficiently satisfy the needs of tasks differing in complexity. Also, Yii is very convenient for rapid prototyping and development and it's easy to deploy. The major downside would be that PHP has lost some popularity compared to other languages, but it's nonetheless very much alive and kicking, especially in the web development world.
Ruby on Rails: Known also as Rails, it's a server-side web application framework written in Ruby. Rails puts emphasis on Convention over Configuration, and the Don't Repeat Yourself (DRY) principle. This means less time spent writing boilerplate code and more time spent on crafting unique parts of the application. Ruby on Rails prides itself on being inclusive and friendly to newcomers. It's especially popular among startups and for rapid development.
If you wanted the up-to-date tech stack, ASP.NET MVC 4 isn't the latest version available anymore, ASP.NET Core would be the .NET answer in 2023.