How to install F# and use it from aspx page - asp.net

I am looking for simple answer about installation but without .msi and Visual Studio.
I don't use VS, I put dll files inside bin folder, write something to web.config and put import in a page.
But for F#, I can't find anything about it, if I find it, its useless for last version of F#.
Same goes for IronPython, and many others :)
If anyone is using asp.net in this "strange" "not normal" way like me, maybe can help
Thank you

The PowerPack includes a CodeDom provider, but generally speaking, you will be unsuccessful using F# directly to create a WebForms application. You can create your code behind files in a separate F# library and reference those types in your C# WebForms pages. Dan Mohl has several such templates available on nuget.org. Despite much pleading from the F# community, this is the current best approach.
If you want more F#-like approaches, check out figment, WebSharper, and frank.

You cannot use F# in aspx.
ASP.Net only allows three languages C# or VB or J#
For more information please read: -
Programming Languages in ASP.NET

Related

Code Syntax of ASP.Net

I have learned VB.Net with the help of some books and blogs like code project but I donot know even the basics of ASP.Net that I really want to learn.
Could you please advise me if there is any difference between the code syntax of vb.net and ASP.net or I can use the same syntax to build asp.net applications?
Thanks for your help.
If you're writing your ASP.NET server-side code in VB, then it's standard VB.NET code just like you're accustomed to. The two most popular languages for .NET are VB and C#, and you can use whichever you wish. But the fact that you're using ASP.NET doesn't change the syntax or structure of either one of them.
Basically, ASP.NET is a web framework that you'd be using to build web applications written in your language of choice (in this case, VB.NET). You'll want to know more about the framework, such as how to design your forms and make use of the web controls (and knowing HTML/CSS/JavaScript is a big help too). But the overall syntax of the VB code doesn't change.
asp.net is not a language it is a framework.
vb.net is a language which used alongside asp.net to build websites/web applications.
So in a way yes there is a difference, but the difference is that they are two different things.
It's worth noting that VS provides a somewhat watered-down interface when using VB as opposed to C#. It's really worth your time to get familiar with C#.
Microsoft's ASP.NET hub hub is a very comprehensive resource for tutorials. I'd recommend starting there, and coming back here when you have a specific question.
ASP.NET is the technology, and you can choose which language you want to use with it. C# is the most widely used Microsoft languages, but you can develop ASP.NET applications in VB.NET too.
Use VB.NET to fimiliarize yourself with ASP.NET and get a handle on how it works. Eventually, it would be a good idea to learn C#, because it's the most widely used snytax in the world. Most modern languages are rooted in the C syntax, so by learning one of them you're learning all of them. It really is the biggest bang for your buck in terms of applicable experience.

ASP.NET MVC 3: can I combine C# Razor Views with F# Controllers?

I figure this is a straight forward question, and I think there is a good chance the answer is "yes" (while mixed-language projects are generally not possible, it seems to me that the View Engine gets special treatment). I know I could also try this out pretty easily myself, but for the record, and to save myself some time, I'd like to know if this combination is possible (I've not used ASP.NET MVC or Razor myself yet, I'm considering options for a new project at work).
Edit: I am particularly interested in whether this combination is possible within a single project. Or more specifically whether there are any feature losses using this combination (even if the two project setup is the way to go).
You can definitely mix a C# Razor code with F# controllers. It may be possible to do this in a single project (by modifying the web project to use F#). An easier alternative is to create a standard C# Razor Web project and a separate F# project (containing model and controller code).
I created a Visual Studio template that allows you to do exactly this.
Unfortunatelly, the template is not yet available on Visual Studio Gallery (so you cannot see it from "Online Templates" tab in "New Project" dialog). There is some issue with their upload mechanism, that I'm trying to resolve, so it should hopefully appear there soon. There are also several ASP.NET MVC templates by Daniel Mohl on Visual Studio Gallery, but I'm not sure if any of them uses Razor.

Where can I find a clean API for Visual Basic development?

I am completely new to ASP.NET programming, and was asked to work on a small project involving ASP.NET, VB (which I am new to as well) and Microsoft SQL Server 2005.
Being used to php/java I was hoping to find some kind of similar API to php.net and the javadoc. It would be very useful to have as I would prefer to work with a text editor, instead of using DreamWeaver or Visual Web Developer.
In the project I basically only need to use ASP.NET to read from a SQL 2005 database and write to JSON files. Could anyone please give me some pointers on where to find a clean and decent API to work with? I would also appreciate any input and tips I could get to get started working on this.
I would prefer to work with a text editor, instead of using DreamWeaver or Visual Web Developer.
Imo this is a mistake in .Net. The platform was built with the IDE in mind. You really will be able to get a lot more done, and do it better, if you let yourself learn to use Visual Studio.
That said, the place to look for .Net documentation is, of course, the MSDN Library. Maybe start on this page:
http://msdn.microsoft.com/en-us/library/w0x726c2.aspx
only need to use ASP.NET to read from a SQL 2005 database and write to JSON files
You might want to take a look at ASP.NET MVC.
You controllers can return a JsonReasult which will automatically result in JSON being sent. No need to define any markup.
"Could anyone please give me some
pointers on where to find a clean and
decent API to work with?"
If you want to develop a VB.NET application, you have to use the VB.NET programming language; there are no other APIs available.
Where does javadoc fit into this? That's just markup you apply to your source code to create documentation. .NET has its own system which works in the same way but is built on XML.
As Joel says, Visual Studio has everything you need. It features a visual editor but also gives you access to all the source code.
you will need to have the IDE to develop ASP.Net application. It will be much easier using it. You can find docs and articles on developing on ASP.Net in this site. its a nice one.
https://web.archive.org/web/20211027112438/https://aspnet.4guysfromrolla.com/default.aspx#Tools2
https://web.archive.org/web/20210513213529/http://aspnet.4guysfromrolla.com/articles/042705-1.aspx
https://web.archive.org/web/20210802161558/https://aspnet.4guysfromrolla.com/articles/110905-1.aspx
work on a small project involving ASP.NET, VB (which I am new to as well) and Microsoft SQL Server 2005
It might not be VB, it might be VB.Net?

Do I need to learn c# beforestarting to work with asp.net

Just wondering if I needed to know c# before I can start working with asp.net,
can I learn them together?
what is a good starting point like a book or online tutorials.
thanks
Personally I'd start by learning C# without ASP.NET, preferrably via console applications. That way you can get to grips with the language and the core types (collections, I/O, text, primitives etc) without being hampered by all the extra stuff ASP.NET throws in your way.
There are various oddities in any "peripheral" technology (ASP.NET, WCF, WPF, WinForms etc) that it can be very confusing if you don't know the core stuff well: if something goes wrong, you can easily end up not having the faintest idea where to start finding the problem. Is it a misunderstanding about the language? The collections? The way that ASP.NET events are autowired? I'm sure you see what I mean :)
C# 3.0 in a Nutshell is a good book in terms of covering the language and the core framework. Then get a good ASP.NET book separately.
ASP.NET is a web framework - in other words it is simply a set of libraries that make creating websites easier by abstracting away all the tedious details. In order to write code to harness this framework you will need to use one of Microsoft's .NET languages (C#, VB.NET, etc.).
you can also use vb.net (visual basic). Might be beneficial if you are already familiar with it
I think you can start learning asp.net before C#. But you'll really benefit from doing both together.
http://www.learnvisualstudio.net has loads of great video-tutorials (ASP.NET, VB.NET and C#).
Yes, you can learn them both at the same time, it is often easier to start if you know C# or VB beforehand, but not a requirement at all to be successful.
There are many places to start, but 4GuysFromRolla.com is a great tutorial site. Otherwise, any of the beginning ASP.NET books would be a good starting point from a book.
C# in my opinion is the easiest of the languages supported by the Dot Net framework. I would suggest starting there.
ASP.NET leverages the multi-language capabilities of the .NET Common Language Runtime, allowing web pages to be coded in VB.NET, C#, J#, Delphi.NET, Chrome etc. This means you don't have to learn C# to use it and, even if you don't know any of those languages, you may find it easier to start with a more human readable one such as VB.NET.
In any case, I recommend the following tutorials if you do plan on learning C#:
http://msdn.microsoft.com/en-us/library/aa288436%28VS.71%29.aspx

Add ons in a compiled language

We are developing a CMS in ASP.NET. We love the idea of add-ons (like in Wordpress, where any developer can add a menu button or a widget) and would like to enable developers to do the same with our system.
However I think that the fact that C# is a compiled language is an obstacle in the way of add-ons.
Am I right? Or is there a way to create add-ons for a ASP.NET application?
The fact that C# is a compiled language isn't a problem at all. In fact the .NET framework should make it relatively easy to load other code (just as Java does, for the same reason). Look into the Managed Extensibility Framework, which is all about loading Add-Ons in managed code.
It's not an obstacle at all. MEF has already been mentioned, you could also use:
System.Addin
Mono.Addins
I'm not sure for ASP.NET specifically, but in the only compiled programming language I know (Objective-C/Cocoa), there's the concept of Bundles that can be loaded dynamically. I'm not sure how that works on the backend, but I'd guess that there is some similar system for C#/ASP.NET.
I don't know how it's done in Wordpress, but there should be many ways. You can allow developers to upload their assemblies with compiled code or you can allow them to upload code in C# or IronPython or anything that supported and compile it dynamically. Maybe you can use WebParts for your task.
Microsoft has created the Managed Extensibility Framework (MEF), specifically for this problem: providing .NET plugins for .NET applications. It is the framework that (future versions of) Visual Studio use for writing managed plugins.
However, please consider using a dynamic scripting language for this! Problems like this are exactly what they are specifically designed for. If you host the Dynamic Language Runtime in your application, it not only means that your users can extend the application in a scripting language, but even in any dynamic language (scripting or otherwise) for which a DLR implementation exists: Ruby, Python, Smalltalk, Scheme, JavaScript, PHP, you name it. Biggest disadvantage: the DLR hasn't been released yet.
In C#, you can create any assemblies, link them as DLL files and then do whatever you want.
The usual case would be to define some kind of Plugin Interface which must be implemented by all the plugins.
Then you can load all plugins from the filesystem (by iterating over the plugin DLLs), find the class inside which implements the interface, instantiate it and work with it.
If you want to provide plugins with unloadability and security, you could create an application domain and load the plugins to that, increasing complexity, but also increasing stability (a bad plugin won't crash your app).
Please ask more specifically if you want a specific answer :-)
It's not too difficult to put hooks in place. You have to define in advance where the add-on features will appear. For example: when drawing a menu you can use reflection to search other dlls (with specific names and locations) for a "BuildMenu" function. You'll be defining the API for this function signature. It may have to return a list of items to be added to the base menu items collection.

Resources