I am exploring the new ASP.Net 5 functionality with VS 2015. I like the idea of my web app being OS agnostic, so I want to stick to using the aspnetcore50 framework. Since I want my code to be portable to Linux eventually, I want to use an open database such as MySql or PostgreSQL. It doesn't look like any of the Nuget packages (such as Npgsql) are compatible since they all rely on System.Data and for the coreclr, only System.Data.Common is available.
How does Microsoft plan on supporting linux if the only database drivers available are for Sql Server? Should I just target aspnet50 framework and trust that eventually open database drivers will become available that will support aspnetcore50?
Related
is there some possibility to work with an open database like mysql, mariadb or other and ASP.NET vNext?
Perhaps a beta driver or something like that?
For ASP.NET vNext you can choose to target the full .NET Framework or a slimmed down, bin-deployable, cross platform, Core framework.
If you target the full .NET Framework then you get all the data access options you had before. If you target the CoreCLR then you can use the new version of Entity Framework (EF7). Currently we have the following providers available on CoreCLR; SQL Server, SQLite, and an in memory provider for testing. Of course, more providers will become available as we work towards RTM.
In addition to EF7, there are also the corresponding provider specific SDKs that EF is building on top of, and these can be used in application code as well (e.g. there is an implementation of SqlClient that can be used to access a SQL Server database).
You can read more about our plans for EF7 here - http://blogs.msdn.com/b/adonet/archive/2014/05/19/ef7-new-platforms-new-data-stores.aspx.
It depends on if you are using the CoreCLR (the trimmed down version) or the Desktop profiles. In the Desktop profile you have everything you have in .NET available and you can add your own open source libraries (via Nuget).
Just open up your project.json and add the needed dependencies.
Anyway you should not be dealing with low level ADO.NET, you can use Entity Framework, or Massive or nHibernate, or whatever, to abstract away the specific database your project is using now, as it is bound to change or multiply during the project lifetime...
You should still be able to use anything ADO.Net related with ASP.Net vNext - it is, after all, still .Net!
Yes, it is possible, but only if you use full .net profile (on windows it will be .net framework and on linux - mono). NHibernate working well on mono, so you can eventually use mysql, postgresql and other databases in you APS.NET 5 vNext application. Here is complete example of application with NHibernate and PostgreSQL on Ubuntu server.
I am going to develop small WPF application. Target platform is .NET 3.5. The main goal is to make it portable (move to any folder and it works out of the box). It should run on Windows 7 machine without any additional installations. However I need a database into it (not need ORM support, just simple storage). Could you please suggest database that would be better for this purpose? I think about SQL CE 4.0 but I am not sure whether it requires additional installations like C++ libs or not. Including DLLs is OK.
I have created an ASP.NET website which accesses a DB. The DB can will be alrady installed at target machine. It can be anything from SQL server 2000 to SQL server 2008. Further more the target OS can be anything from Windows server 2000 to Windows 7. I have kept the target .Net framework version as .Net 2.0 to keep matters simple. Also, the target machine can be x86 or x64 or Itanium.
Do I need to create separate builds for different target platforms?
How do I create an Installer which will :
Put this website on a Virtual Directory of IIS server(can be any IIS version)
Detect the target platform and install the appropriate build
I need to do this either using the standard MSI installer of VS2008 or using WiX or any open source installer for that matter. Please help me with this since I am new to deployment projects.
Thanks
You can use softwares like InstallShield in order to create your installer. but InstallShield is not for free I think.
such programs have their own scripting language that simplify the operations that you want to do, like detecting which operating system is installed or which SQL Server version is installer, beside that they allows you to communicate with a certain function in a dll. You can call this function to do some logic or some validation.
You can use WiX to create an MSI that does what you've listed. It is free, and as well as including functionality for what you want also allows custom scripting for any custom logic needed.
I have a Windows application which contain a deployer.
Does the deployer itself contain a copy of the .NET framework?
Or do we have to explicitily install it?
When I check in the solution explorer, it shows the .NET framework under the deployer project under detected dependencies?
My Windows application connects to the Internet to validate for a registered user. Do I need to configure some port (or something like that) while I am installing it? Also how do I check which port my application uses to connect to the Internet?
Regarding #1, just as Xstahef said, you need to prerequisite the .NET framework.
You could put the .NET redistributable in your installer, and if you detect that the .NET runtime is not installed then prompt the user to run and install the .NET distributable contained in your installer (that's what we did some time ago, InstallShield provided this functionality for us). But this may not be recommendable: the .NET runtime has grown a lot in size (depending of the version you need to have in your client's machine), and many customers (at least the educated customers) won't trust installing the runtime from your installer. Besides, you may need to check with the legal department in your company before including a third-party component in your installation.
It depends on your deploy project (Visual Studio, InstallShield?). But commonly, you need to force the .NET installation (prerequisite option). By default, .NET is not contained in the deployment projects.
Here, it depends on the way you want to connect the Internet.
.NET runs in a VM, so you would need to require the framework be installed in order to actually run it. Much like you need to have Flash or Java for those respective mediums. Microsoft has redistributable packages for the .NET framework. So you could probably incorporate them into your installer. If you're targeting 1.1 or 2.0 most people probably won't need it.
So long as you are not trying to get in to the client machine then you shouldn't need anything special like UPnP to [attempt to] open a port if they are behind a NAT router.
Xenocode does allow to running such an application on an absolutely clean PC.
I'm coming from the open source world, and interested in giving ASP.NET a spin. But I'm having a little trouble separating the tools from the platform itself in regards to the licensing. I've downloaded Visual Web Developer 2008 Express, but not sure how different this is from one of the full-featured Visual Studio licenses -- and whether or not my Express license will prevent me from using all the features of ASP.NET.
Is a Visual Studio license just an IDE, or does it include pieces of .NET not available to the Express license? What about the other tools like IIS and SQL Server?
Thanks.
All of .net is available in the .net SDK, so in theory you will not need Visual Studio at all.
Now, there are some things that Express will not do. For example, the Database Designer is not very comprehensive and adding different remote databases is not or only very hardly possible. Still, in code you can connect to everything.
There is also no Remote Debugger, no support for creating Setup Files (well, that does not apply to ASP.net anyway), no real Publish Web Site Feature (although that can be added manually as it's just a Frontend for a SDK tool), no integrated Unit testing (and Microsoft loves to threaten people who add it), etc.
For a full comparison, see here:
Visual Studio 2008 Editions
But as said: Functionality of .net is all in the SDK, Visual Studio is just making it a bit easier to work with.
Visual Studio is just an IDE, you can do all your .NET development with the SDK and notepad if you choose. In fact there is something to be said for learning it that way so you understand better how the pieces fit together!
Microsoft have a version comparison matrix available so you can see exactly what is included each version.
IIS is a Windows component and considered part of the OS, there is nothing else to buy.
SQL Server comes in many flavours, SQL EXpress is free to use and whilst limited compared to the versions you pay for, it is more than enough to get started with ASP.Net
Visual Studio is the IDE and does not include the platform.
IIS and SQL Server are separate products. IIS is available as part of the windows install and the version is different depending on what version of Windows you are using.
SQL Server also has an express product which is not as full featured as the Full versions of SQL Server, yet it is still rather valuable and useful especially for learning purposes.
You can learn a lot from the free tutorials found on asp.net.
Visual Studio is just the IDE. You could theoretically create every file in Notepad and compile manually with just the .net framework.
IIS is an operating system feature, and SQL Server has different flavors with different capabilites.
SharpDevelop is a Open Source IDE for C# and VB.net